如何从GlobalCatalog添加OU

时间:2011-01-10 19:45:01

标签: c# active-directory ldap

我可以使用以下内容查询用户,但我想在搜索DN中添加额外的OU = Good。如果不对GC的完整路径进行硬编码,这是否可行?

Forest myForest = Forest.GetCurrentForest();
GlobalCatalog cat = myForest.FindGlobalCatalog();
DirectorySearcher srch = cat.GetDirectorySearcher();
srch.Filter = "(&(objectClass=user)(samaccountname=myuser))";
SearchResult result = srch.FindOne();

1 个答案:

答案 0 :(得分:1)

您可能会尝试获取全局编录的DirectoryEntry,然后在其.Children媒体资源中搜索您要查找的OU,然后使用DirectoryEntry作为搜索结果root - 像(未经测试,手头没有AD来测试):

Forest myForest = Forest.GetCurrentForest();
GlobalCatalog cat = myForest.FindGlobalCatalog();

DirectoryEntry deGlobal = cat.GetDirectoryEntry();

DirectoryEntry deYourOU = deGlobal.Children.Find("OU=Good");

DirectorySearcher srch = new DirectorySearcher(deYourOU);

当然,实际上,您需要在代码中添加一些错误检查(!= null等等) - 但这将是获取OU的基本方式(我希望!)< / p>