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)
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