2016-04-01 4 views
0
DirectorySearcher deSearch;SearchResultCollection result; 
deSearch.SearchRoot = baseResult.GetDirectoryEntry();// I know this one can be done like - PrincipalContext pContext = new PrincipalContext(ContextType.Domain, deSearch.SearchRoot.Path); 
deSearch.Filter = "(&(&(objectClass=user)(objectCategory=person))(name=" + name + "))"; //???? **Not sure how to apply the filter in Principal Context** 
results = deSearch.FindAll(); 

Пожалуйста, помогите мне в применении фильтра в principlecontextНужна помощь в преобразовании DirectoryServices кода PrincipalContext

ответ

0

Вы можете использовать PrincipalSearcher для поиска конкретного пользователя.

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain)) 
{ 
    UserPrincipal searchUser = new UserPrincipal(ctx); 
    searchUser.GivenName = "Name"; 

    PrincipalSearcher srch = new PrincipalSearcher(searchUser); 
    foreach(var found in srch.FindAll()) 
    { 
    //found will contain the info 
    } 
} 

Вы также можете использовать UserPrincipal.

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain)) 
{ 
    using (UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.DistinguishedName, "DN")) 
    if (user != null) 
    { 
     //user contains info 
    } 
} 

Вы можете определить различные IdentityType, если вы хотите искать по samAccountName или т.п.

Смежные вопросы