Какой самый простой способ проверить UPN и имя для входа в NT? - PullRequest
1 голос
/ 13 июля 2010

Мы разрешаем нашим пользователям вводить информацию об учетной записи Active Directory, используя имя учетной записи NT (домен \ учетная запись) или UPN (account @ email, xxx). Я хотел бы написать некоторый код для проверки учетной записи в активном каталоге, прежде чем позволить пользователю двигаться дальше. Обратите внимание, мы не проверяем пароль, просто имя учетной записи.

Я могу использовать UserPrincipal.FindByIdentity, однако для этого требуется только имя пользователя.

Могу ли я проверить имя учетной записи в любом формате, используя .NET? Или я вынужден анализировать домен по имени учетной записи для проверки обеих частей ввода пользователя? Позднее будет немного грязно, не так ли?

Ответы [ 2 ]

2 голосов
/ 13 июля 2010

Попытка создать WindowsIdentity из UPN:

WindowsIdentity wi = new WindowsIdentity("alias@example.com");

Это будет успешно для UPN, действительного в AD, и исключение для недействительных. Процесс проверки UPN должен быть подключен к AD и иметь надлежащие права доступа (т. Е. Нет анонимизации из-за ограничения делегирования в олицетворенном контексте).

1 голос
/ 13 июля 2010

Взгляните на System.DirectoryServices.AccountManagement пространство имен, особенно PrincipalSearcher .Я думаю, что вы можете сделать быстрый FindOne, используя правильно сформированный QueryFilter, используя Query by Example и проверить либо имя учетной записи, либо UPN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...