Чтобы получить всех пользователей в домене Active Directory, вы можете использовать объект класса DirectorySearcher
для запроса к домену всех пользователей, доступных в этом домене.
Класс DirectorySearcher
содержится в пространстве имен System.DirectoryServices
и является классом для выполнения запросов к доменным службам Active Directory.
На этой странице приведен пример того, как это сделать:
...
string DomainPath = "LDAP://DC=xxxx,DC=com"
DirectoryEntry searchRoot = new DirectoryEntry(DomainPath);
DirectorySearcher search = new DirectorySearcher(searchRoot);
search.Filter = "(&(objectClass=user)(objectCategory=person))";
search.PropertiesToLoad.Add("samaccountname");
search.PropertiesToLoad.Add("mail");
search.PropertiesToLoad.Add("usergroup");
search.PropertiesToLoad.Add("displayname");//first name
SearchResultCollection resultCol = search.FindAll();
...
В DirectorySearcher создайте объект DirectorySearcher, который ищет
для всех пользователей в домене. search.Filter = "(&(objectClass=user)(objectCategory=person))"
фильтрует поиск.
Синтаксис поискового фильтра выглядит немного сложным, но в основном это
фильтрует результаты поиска, чтобы включить только пользователей -> "objectCategory=person"
и "objectClass=user"
- и исключает отключенные
учетные записи пользователей, выполняя побитовое И userAccountControl
флаги и флаг «учетная запись отключена».
Чтобы указать локальный домен Active Directory, вы можете использовать это:
DirectoryEntry searchRoot = new DirectoryEntry("WinNT://" + Environment.MachineName);
Вы можете объединить этот пример с этим кодом, который использует foreach
вместо использования цикла for
в примере страницы:
foreach (SearchResult result in resultCol)
{
yourComboBox.Items.Add(result.Properties["displayname"]);
}
Я оставил здесь несколько страниц с сайтов Microsoft MSDN и codeproject.com:
DirectorySearcher Class
Получить список пользователей Active Directory в C #
SearchResultCollection Class
Класс SearchResult
SearchResult.Properties Property