我的组织拥有由多个域名组成的事件目录林业。我需要编写一个应用程序以通过用户 ID 查找用户。
string username = "test_user_id";
DirectoryEntry entry = new DirectoryEntry("LDAP://one_of_the_domain");
DirectorySearcher dSearch = new DirectorySearcher(entry);
dSearch.Filter = "(&((&(objectCategory=Person)(objectClass=User)))(samaccountname=" + username + "))";
SearchResult result = dSearch.FindOne();
if (result != null)
{
var email = result.Properties["mail"];
Console.WriteLine(email[0]);
}
上面的示例代码将允许我在 one_of_the_domain
内搜索用户。但是有没有一种方法可以在整个事件目录林中找到用户?
最佳答案
使用 Forest
类获取当前的全局目录,然后您可以在其中获取对将搜索整个森林的 DirectorySearcher
的引用。
var currentForest = Forest.GetCurrentForest();
var gc = currentForest.FindGlobalCatalog();
using (var userSearcher = gc.GetDirectorySearcher())
{
userSearcher.Filter =
"(&((&(objectCategory=Person)(objectClass=User)))(samaccountname=" + username + "))";
SearchResult result = userSearcher.FindOne();
}
关于c# - 按用户名搜索整个 Active Directory 林,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333823/