Если вы используете .NET 3.5 или более позднюю версию, вы можете использовать PrincipalSearcher
и «запрос по образцу» принципалу сделать ваш поиск:
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// define a "query-by-example" principal - here, we search for a UserPrincipal
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.SamAccountName = "Esteban*";
// 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.....
}
Если вы убежище 't уже - абсолютно прочитал статью MSDN Managing Directory Security Principals in the .NET Framework 3.5, которая показывает, как наилучшим образом использовать новые функции в System.DirectoryServices.AccountManagement
. Или см. Пространство имен MSDN documentation on the System.DirectoryServices.AccountManagement.
Конечно, в зависимости от ваших потребностей, вы можете указать другие свойства на том, что «запрос по образцу» пользователь принципала вы создаете:
DisplayName
(обычно: первое имя + пробел + фамилия)
SAM Account Name
- ваш Windows/AD имя учетной записи
User Principal Name
- ваш "[email protected]" имя стиля
Вы можете Spe cify любое из свойств на UserPrincipal
и использовать их как «запрос по примеру» для вашего PrincipalSearcher
.
Я поддерживаю только существующий код, поэтому я не хочу много разбираться с кодом, который вы мне прислали, однако я предполагаю, что могу положить * в начале и в конце, и он тоже должен работать. –
вот так: sAMAccountName = * "+ sAMAccountName +" *) –
@EstebanV .: [в соответствии с этим] (http://technet.microsoft.com/en-us/library/ee198823.aspx) кажется, что он должен работать , да. –