Вы можете использовать PrincipalSearcher
и принцип «запрос за примером» для поиска:
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// define a "query-by-example" principal - here, we search for a UserPrincipal
// and with the first name (GivenName) of "Bruce"
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.GivenName = "Bruce";
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// find all matches
foreach(var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
}
Если вы еще этого не сделали - обязательно прочитайте статью MSDN Управление принципами безопасности каталогов в .NET Framework 3.5 , в которой хорошо показано, как наилучшим образом использовать новые функции в System.DirectoryServices.AccountManagement
* 1008. *
Обновление:
Конечно, в зависимости от ваших потребностей, вы можете захотеть указать другие свойства для созданного вами «пользовательского запроса» субъекта:
Surname
(или фамилия)
DisplayName
(обычно: имя + пробел + фамилия)
SAM Account Name
- имя вашей учетной записи Windows / AD
User Principal Name
- ваше имя в стиле "username@yourcompany.com"
Вы можете указать любое из свойств в UserPrincipal
и использовать их как «запрос по примеру» для PrincipalSearcher
.