Я пытаюсь получить все имена групп в Active Directory.Группа должна быть отфильтрована по имени подразделения.Существует также возможность получить все группы без фильтрации OU.Выборка всех групп дает более 20 групп.Но когда я пытаюсь получить группы по имени подразделения, немногие из групп показывают (6 групп) из разных подразделений.
Я пробовал DirectorySearcher с фильтром, но не смог получить все группы.
DirectoryEntry root = null;
if (ou == "")
{
// This is giving all groups
root = new DirectoryEntry("LDAP://RootDSE");
root = new DirectoryEntry("LDAP://" + root.Properties["defaultNamingContext"][0]);
}
else
{
// When passed 1 by 1 OU name, few of the groups are showing
string cName = getExactDomainName(domain);
root = new DirectoryEntry("LDAP://OU=" + ou + "," + cName);
}
Нужен запрос фильтра поиска, чтобы дать всем группам имя OU.
РЕДАКТИРОВАТЬ:1. Я извлекаю все подразделения в определенном домене и показываю их в окне контрольного списка.2. Пользователь может проверить одну или несколько групп из поля контрольного списка.В зависимости от проверенных групп и выбранного OU (на 1-м шаге) будут отображаться пользователи.Фильтр выглядит следующим образом:
var search = new DirectorySearcher(new DirectoryEntry())
{
search.Filter = "(&(objectCategory=user)(memberOf=cn=" + groupName + ",ou=" + OUName + ",dc=dev,dc=local))";
};
Теперь проблема в том, что когда на первом шаге не выбрано OU, появляются 20 групп.Но, когда OU выбран 1 на 1, общее количество групп не 20. Я думаю, я возиться с фильтром запроса.Мне просто нужна опция, когда пользователь выберет OU, тогда все группы будут показаны пользователю.Пользователь теперь проверит группы, и будут выбраны все пользователи в этой группе (ах) и OU.