ASP.NET How to get List of Groups in Active Directory ASP.NET How to get List of Groups in Active Directory asp.net asp.net

ASP.NET How to get List of Groups in Active Directory


Check out System.DirectoryServices (An ASP.NET 2.0 reference):

C#-example to get groups:

using System.DirectoryServices; public class test{    private void main()    {        foreach (string @group in GetGroups())        {            Debug.Print(@group);        }    }    public List<string> GetGroups()    {        DirectoryEntry objADAM = default(DirectoryEntry);        // Binding object.         DirectoryEntry objGroupEntry = default(DirectoryEntry);        // Group Results.         DirectorySearcher objSearchADAM = default(DirectorySearcher);        // Search object.         SearchResultCollection objSearchResults = default(SearchResultCollection);        // Results collection.         string strPath = null;        // Binding path.         List<string> result = new List<string>();        // Construct the binding string.         strPath = "LDAP://stefanserver.stefannet.local";        //Change to your ADserver         // Get the AD LDS object.         try        {            objADAM = new DirectoryEntry(strPath);            objADAM.RefreshCache();        }        catch (Exception e)        {            throw e;        }        // Get search object, specify filter and scope,         // perform search.         try        {            objSearchADAM = new DirectorySearcher(objADAM);            objSearchADAM.Filter = "(&(objectClass=group))";            objSearchADAM.SearchScope = SearchScope.Subtree;            objSearchResults = objSearchADAM.FindAll();        }        catch (Exception e)        {            throw e;        }        // Enumerate groups         try        {            if (objSearchResults.Count != 0)            {                foreach (SearchResult objResult in objSearchResults)                {                    objGroupEntry = objResult.GetDirectoryEntry();                    result.Add(objGroupEntry.Name);                }            }            else            {                throw new Exception("No groups found");            }        }        catch (Exception e)        {            throw new Exception(e.Message);        }        return result;    }}

VB-example to get groups:

Imports System.DirectoryServicesPublic Class Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load    For Each group As String In GetGroups()        Debug.Print(group)    NextEnd SubPublic Function GetGroups() As List(Of String)    Dim objADAM As DirectoryEntry                   ' Binding object.    Dim objGroupEntry As DirectoryEntry             ' Group Results.    Dim objSearchADAM As DirectorySearcher          ' Search object.    Dim objSearchResults As SearchResultCollection  ' Results collection.    Dim strPath As String                           ' Binding path.    Dim result As New List(Of String)    ' Construct the binding string.            strPath = "LDAP://stefanserver.stefannet.local" 'Change to your ADserver    ' Get the AD LDS object.    Try        objADAM = New DirectoryEntry(strPath)        objADAM.RefreshCache()    Catch e As Exception        Throw e    End Try    ' Get search object, specify filter and scope,    ' perform search.    Try        objSearchADAM = New DirectorySearcher(objADAM)        objSearchADAM.Filter = "(&(objectClass=group))"        objSearchADAM.SearchScope = SearchScope.Subtree        objSearchResults = objSearchADAM.FindAll()    Catch e As Exception        Throw e    End Try    ' Enumerate groups    Try        If objSearchResults.Count <> 0 Then            Dim objResult As SearchResult            For Each objResult In objSearchResults                objGroupEntry = objResult.GetDirectoryEntry                result.Add(objGroupEntry.Name)            Next objResult        Else            Throw New Exception("No groups found")        End If    Catch e As Exception        Throw New Exception(e.Message)    End Try    Return resultEnd FunctionEnd Class


Microsoft .NET Framework provides a standard library for working with Active Directory: System.DirectoryServices namespace in the System.DirectoryServices.dll.

Microsoft recommends using two main classes from the System.DirectoryServices namespace: DirectoryEntry and DirectorySearcher. In most cases, it is enough to use DirectorySearcher class only.

You can find some examples in this CodeProject article.