【发布时间】:2010-07-10 14:58:17
【问题描述】:
我想在 Active Directory 环境中搜索 GC://DC=xxx,DC=yyy,DC=zzz 格式的用户。但是,如何以编程方式在任意 Active Directory 环境中查找全局目录?每个域名是否总是对应一个全局目录?我可以尝试任何替代方法吗?
注意:Forest.FindAllGlobalCatalogs() 返回服务器名称列表,但我实际上无法使用它们进行搜索。
Edit1:这是我想要做的:假设我的活动目录有一个名为 domain1.root.com 的域,那么我将使用 GC://DC=domain1,DC=root,DC=com 来搜索用户。但这总是一个全局目录吗?每个域都必须有一个全局目录吗?
Edit2:我现在可以使用以下代码搜索用户:
var currentForest = Forest.GetCurrentForest();
var globalCatalog = currentForest.FindGlobalCatalog();
Console.WriteLine(globalCatalog.Name);
//DirectorySearcher searcher = new DirectorySearcher("GC://"+y.Name);
DirectorySearcher searcher = globalCatalog.GetDirectorySearcher();
searcher.Filter = @"samaccountname=skaranth";
Console.WriteLine(searcher.SearchRoot.Path);
var result = searcher.FindOne();
if(result!=null)
Console.WriteLine(result.Properties["distinguishedname"][0]);
searcher.Dispose();
globalCatalog.Dispose();
currentForest.Dispose();
【问题讨论】:
标签: c# active-directory