Pages

Saturday, 12 May 2012

Function to get user groups from Active Directory

To use the below function in your project, you need to add the reference for System.DirectoryServices


Public Function GetUserGroupMembership(ByVal strUser As String) As StringCollection 
Dim groups As New StringCollection()
Try
  Dim obEntry As New DirectoryServices.DirectoryEntry("
LDAP://domain/DC=domain,DC=com")
  Dim srch As New DirectoryServices.DirectorySearcher(obEntry, "(sAMAccountName=" & strUser & ")")
  Dim res As DirectoryServices.SearchResult = srch.FindOne()
  If res IsNot Nothing Then
     Dim obUser As New DirectoryServices.DirectoryEntry(res.Path)
   ' Invoke Groups method.
     Dim obGroups As Object = obUser.Invoke("Groups")
       For Each ob As Object In DirectCast(obGroups, IEnumerable)
      ' Create object for each group.
        Dim obGpEntry As New DirectoryServices.DirectoryEntry(ob)
        groups.Add(obGpEntry.Name)
       Next
      End If
Catch
ex As Exception           
    Msgbox(ex.Message)
End Try
Return groups
End Function



USAGE:
Dim Groups As StringCollection = GetUserGroupMembership(username.text)

No comments:

Post a Comment