Как выполнить запрос хранилища LDAP по sAMAccountName и Domain? Как называется свойство "домен" в терминах Active Directory или LDAP?
Вот что у меня есть для фильтра на данный момент. Я хотел бы иметь возможность добавлять домен:
(&(objectCategory=Person)(sAMAccountName=BTYNDALL))
"Домен" не является свойством объекта LDAP. Это скорее имя базы данных, в которой хранится объект.
Поэтому вы должны подключиться к нужной базе данных (в терминах LDAP: "привязка к серверу домена/каталога"), чтобы выполнить поиск в этой базе данных.
После успешного подключения ваш запрос в его текущей форме - это все, что вам нужно.
BTW: Выбор "ObjectCategory=Person"
вместо "ObjectClass=user"
был хорошим решением. В AD первое является "индексированным свойством" с отличной производительностью, второе не индексировано и немного медленнее.
Вы должны выполнить поиск в домене:
http://msdn.microsoft.com/en-us/library/ms677934(VS.85).aspx
Итак, по сути, вы должны привязаться к домену, чтобы искать в этом домене.
Если вы используете .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 + ")";