Нужна помощь в преобразовании кода DirectoryServices в PrincipalContext
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();
Пожалуйста, помогите мне в применении фильтра в принципе текст
1 ответ
Ты можешь использовать 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
или т. д.