Как искать электронную почту по полному имени в Active Directory? - PullRequest
0 голосов
/ 30 апреля 2010

Я хочу найти электронную почту пользователя с помощью Active Directory. Доступно полное имя пользователя (например, «Джон Доу» для электронного письма с электронным письмом «jdoe@example.com»). Из того, что я искал, этот приближается к тому, что я ищу, за исключением того, что для фильтра задано значение "SAMAccountName", а это не то, что у меня есть.

Если только я не неправильно понимаю, мне просто нужно выбрать правильный атрибут и точно так же добавить полное имя. К сожалению, я не знаю, что это за атрибут, очевидно, никто не должен был спрашивать о поиске информации таким образом, и это довольно большой список (msdn * microsoft * com / en-us / library / ms675090 (v = VS.85) * aspx, stackoverflow не позволил мне связать 2 гиперссылки, потому что у меня нет 10 повторений) атрибутов.

Кто-нибудь знает, как получить адрес электронной почты пользователя через поиск в Active Directory, используя полное имя пользователя?

1 Ответ

3 голосов
/ 30 апреля 2010

Используя 3.5 System.DirectoryServices.AccountManagement.dll , вы можете использовать метод UserPrincipal FindByIdentity:

UserPrincipal.FindByIdentity(context, IdentityType.Name, "Lastname, Firstname");

Этот вызов обычно заключен в пару операторов using, таких как:

using (var ctx = new PrincipalContext(ContextType.Domain))
{     
    using (var userPrincipal = UserPrincipal.FindByIdentity(ctx, IdentityType.Name, user))
    {
        return userPrincipal == null ? "" : userPrincipal.EmailAddress;
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...