gpt4 book ai didi

C# DirectorySearcher 只定位服务器所在国家的用户

转载 作者:可可西里 更新时间:2023-11-01 10:12:54 24 4
gpt4 key购买 nike

我正在使用 DirectorySearcher 来尝试查找有关用户的信息。当我尝试在服务器(位于德国)上运行它时,它会检索有关德国用户的预期信息,但不会检索来自任何其他国家/地区的用户的信息。

这是我的代码:

DirectorySearcher searcher = new DirectorySearcher();
searcher.Filter = $"(mail={user.email})";
SearchResult sr = searcher.FindOne();

有人见过这样的东西吗?是编程错误,还是服务器配置问题?

值得一提的是,服务器运行的是 Windows Server 2008。我通过 Windows 终端服务访问它。我确实确认 Active Directory 似乎在服务器上正常工作 - 当我转到 Windows 的 Active Directory 搜索实用程序并搜索相同的电子邮件地址时,我能够按预期找到用户。

不是服务器的管理员(其他人管理它)。话虽如此,如果问题可能出在服务器上,我应该问/告诉管理员什么?什么样的事情会导致这种情况,我可能必须做出什么样的改变?

最佳答案

如果你在多域环境中,你必须获取属于你的林的所有域并搜索它们:

List<System.DirectoryServices.AccountManagement.PrincipalContext> contexts = new List<System.DirectoryServices.AccountManagement.PrincipalContext>();

System.DirectoryServices.ActiveDirectory.Forest f = System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest();
foreach (System.DirectoryServices.ActiveDirectory.Domain dom in f.Domains)
contexts.Add(new System.DirectoryServices.AccountManagement.PrincipalContext(DirectoryServices.AccountManagement.ContextType.Domain, dom.Name));

您必须搜索所有这些主要上下文。

这是一个搜索 PrincipalContext 对象的示例,但您必须对每个对象执行此操作:Getting all users from Active Directory PrincipalContext

关于C# DirectorySearcher 只定位服务器所在国家的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51304920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com