我用下面的代码来搜索全局编录:现在如何搜索全局目录并返回UserPrincipals的列表?
public SearchResultCollection SearchGlobalCatalog(string username)
{
var de = new DirectoryEntry("GC://SERVERNAME", "USERNAME", "PASSWORD");
var ds = new DirectorySearcher(de);
ds.Filter = "(&((&(objectCategory=Person)(objectClass=User)))(samaccountname=" + username + "*))";
ds.SearchScope = SearchScope.Subtree;
var searchResults = ds.FindAll();
return searchResults;
}
,问题是我不知道如何从SearchResultCollection
获得UserPrincipal
对象的列表。我想这样做的原因是为了访问全局编录中不可用的某些用户属性,如员工编号。
为什么雇员ID不可用?它存储在哪里? –
因为并非所有属性都被复制到全局编录中。通过使用具有域的ContextType的PrincipalContext搜索Active Directory,我可以获得Employee ID。但是,我不知道如何通过搜索全局编录来访问这些附加属性。 – ataravati