Когда я запускаю этот запрос
// Next row is used to login to AD
DirectoryEntry entry = GetEntry(domain, adminUser, adminPassword);
// Here starts the query
DirectorySearcher search = new DirectorySearcher(entry)
{
SearchScope = SearchScope.Subtree,
Filter = "(&" +
"(objectClass=user)" +
// "(distinguishedname=*OU=Ingegneria*)" +
"(givenname=s*)" +
"(samaccountname=*100)" +
")"
};
search.PropertiesToLoad.Add("distinguishedname");
SearchResultCollection result = search.FindAll();
Я получил шесть записей, и это правильно.
Все записи, если я использую record.GetDirectoryEntry()
, имеют
distinguishedname: CN=xxx,OU=Utenti,OU=Ingegneria,DC=xxx,DC=xxx
В любом случае, если я удалю комментарий к distinguishedname
части фильтра, я получу ноль записей !!
Я тоже безуспешно пытался использовать search.PropertiesToLoad.Add("distinguishedname");
.
Как мне найти distinguishedname
в фильтре?
UPDATE:
Если я попытаюсь использовать "(distinguishedname=*)" +
в фильтре, я все равно получу шесть записей, так что я думаю, что могу искать по отличительному имени ...
UPDATE2:
Я также пытался использовать код в Поиск Active Directory для OU, используя частичный путь к OU :
Filter = "(&(objectClass=user)(ou=Ingegneria))";
но у меня ноль записей (у меня две, если я удалю (objectClass=user)
part)