Поиск пользователей в Active Directory на основе имени, фамилии и отображаемого имени

Я пытаюсь найти в своей организации Active Directory для пользователей.

Если FirstName или LastName или DisplayName соответствуют определенному строковому значению, он должен вернуть пользователей.

Мой код:

// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.GivenName = "Ramesh*";
// qbeUser.Surname = "Ramesh*";
// qbeUser.DisplayName= "Ramesh*";    

PrincipalSearcher srch = new PrincipalSearcher(qbeUser);

// find all matches
foreach(var found in srch.FindAll())
{
    //
}

Проблема в том, что я могу искать только по одному фильтру.

Я могу И фильтры, но не ИЛИ. Доступны ли какие-либо решения?

2 ответа

Решение

Смотрите возможное решение этой проблемы в этом другом вопросе SO.

Вам нужно будет использовать расширяемость UserPrincipal создать класс-потомок, чтобы получить доступ к anr свойство (anr = неоднозначное разрешение имен), которое позволяет выполнять поиск сразу в нескольких связанных с именем свойствах.

Посмотрите на DirectorySearcher. Эта статья может помочь.

Другие вопросы по тегам