Запрос Active Directory LDAP по имени учетной записи sAMAccountName и домену

Как выполнить запрос хранилища LDAP по sAMAccountName и Domain? Как называется свойство "домен" в терминах Active Directory или LDAP?

Вот что у меня есть для фильтра на данный момент. Я хотел бы иметь возможность добавлять домен:

(&(objectCategory=Person)(sAMAccountName=BTYNDALL))

"Домен" не является свойством объекта LDAP. Это скорее имя базы данных, в которой хранится объект.

Поэтому вы должны подключиться к нужной базе данных (в терминах LDAP: "привязка к серверу домена/каталога"), чтобы выполнить поиск в этой базе данных.

После успешного подключения ваш запрос в его текущей форме - это все, что вам нужно.

BTW: Выбор "ObjectCategory=Person" вместо "ObjectClass=user" был хорошим решением. В AD первое является "индексированным свойством" с отличной производительностью, второе не индексировано и немного медленнее.

Комментарии (1)

Вы должны выполнить поиск в домене:

http://msdn.microsoft.com/en-us/library/ms677934(VS.85).aspx

Итак, по сути, вы должны привязаться к домену, чтобы искать в этом домене.

Комментарии (0)

Если вы используете .NET, используйте класс DirectorySearcher. Вы можете передать свой домен в виде строки в конструктор.

// if you domain is domain.com...
string username = "user"
string domain = "LDAP://DC=domain,DC=com";
DirectorySearcher search = new DirectorySearcher(domain);
search.Filter = "(SAMAccountName=" + username + ")";
Комментарии (3)