Chidi Okeh
Chidi Okeh

Reputation: 1557

How do I get the users that belong to a group in Active Directory?

I have a dropdownlist that I am trying to fill with users that belong to a certain group in Active Directory.

The group name is OverRiders and 8 people are members of this group. More members could be added.

I have the following dropdown but I run the code, the dropdown is blank.

What am I doing wrong?

Please see code:

        Private Sub FillDropdown()
    Dim oroot As DirectoryEntry = New DirectoryEntry("LDAP://CN=OverRiders,OU=Departments,DC=domain,DC=com")
Dim osearcher As DirectorySearcher = New DirectorySearcher(oroot)
Dim oresult As SearchResultCollection
Dim result As SearchResult
Dim list As New List(Of String)

    osearcher.Filter = "(&(objectCategory=group)(cn={0}))"
    ' search filter; only display emp with firstname / lastname pair
    osearcher.PropertiesToLoad.Add("name") ' member
    oresult = osearcher.FindAll()


    For Each result In oresult
        If Not result.GetDirectoryEntry.Properties("name").Value Is Nothing Then
            list.Add(result.GetDirectoryEntry.Properties("name").Value.ToString())
            Call list.Sort()
        End If
Next
emplist.DataSource = list
emplist.DataBind()

End Sub

I have been able to confirm that the group does exist and the group name is valid. Thanks a lot in advance

Upvotes: 0

Views: 16409

Answers (2)

Michael Gajeski
Michael Gajeski

Reputation: 113

I know this is an old question, but this is what worked for me in a similar situation:

    Dim UsersInGroup As New Collection()

    Dim de As New DirectoryEntry("LDAP://[Domain]")

    Dim MemberSearcher As New DirectorySearcher

    With MemberSearcher
        .SearchRoot = de
        .Filter = "(&(ObjectClass=Group)(CN=" & Group & "))"
        .PropertiesToLoad.Add("Member")
    End With

    Dim mySearchResults As SearchResult = MemberSearcher.FindOne()

    For Each User In mySearchResults.Properties("Member")
        UsersInGroup.Add(User)
    Next

Upvotes: 1

Chidi Okeh
Chidi Okeh

Reputation: 1557

Changed:

Dim oroot As DirectoryEntry = New DirectoryEntry("LDAP://CN=OverRiders,OU=Departments,DC=domain,DC=com")

to

Dim oroot As DirectoryEntry = New DirectoryEntry("LDAP://DC=domain,DC=com")

and this:

osearcher.Filter = "(&(objectCategory=group)(cn={0}))"

to this:

osearcher.Filter = "(&(objectCategory=user)(memberOf=CN=overRiders,OU=Departments,DC=domain,DC=com)‌​)"

Everything else remain unchanged.

Hope it helps someone else.

Upvotes: 2

Related Questions