Платформа.NET « Список пользователей из Active Directory средствами c#

Можно ли получить список пользователей (достаточно логина, имени и фамилии) определенного домена из Active Directory стандартными средствами c#, не имея администраторских прав на контроллере домена?

1 ответов


Можно. Используются классы DirectoryEntry,DirectorySearcher и прочие пространства имен System.DirectoryServices


 var domainPath = "имя домена где производится поиск";
            var directoryEntry = new DirectoryEntry(domainPath);
            var dirSearcher = new DirectorySearcher(directoryEntry);
            dirSearcher.SearchScope = SearchScope.Subtree;
            dirSearcher.Filter = string.Format("(&(objectClass=user)(|(cn={0})(sn={0}*)(givenName={0})(sAMAccountName={0}*)))", searchString);
            var searchResults = dirSearcher.FindAll();
foreach (SearchResult sr in searchResults)
            {
                var de = sr.GetDirectoryEntry();
              //...do smth
            }
 

Строка запроса (&(objectClass=user)(|(cn={0})(sn={0}*)(givenName={0})(sAMAccountName={0}*)))
соответственно здесь идет поиск пользователя по свойствам cn, sn, givenName, sAMAccountName