1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
Public Shared Function GetUserMemberOf(ByVal domain As String, ByVal username As String, ByVal password As String, Optional ByRef exeption As Exception = Nothing) As Collections.Generic.List(Of String)
Dim searcher As DirectorySearcher = Nothing
Dim colEntry As New Collections.Generic.List(Of String)
Try
'Objet de notre utilisateur de la hiérarchie Active Directory.
searcher = New DirectorySearcher(New DirectoryEntry("LDAP://" & domain, username, password))
'On va chercher ici un objet de type user et dont le nom d'ouverture de session = <username>.
searcher.Filter = String.Concat("(&(objectClass=User) (sAMAccountName=", username, "))")
'Ne récupère que la propriété MemberOf.
searcher.PropertiesToLoad.Add("MemberOf")
'Recherche et retourne la première entrée trouvée.
Dim result As SearchResult = searcher.FindOne
'Parcours le contenu de la propriété MemberOf de notre entrée trouvée.
For i As Integer = 0 To result.Properties("MemberOf").Count - 1
'Récupère la chaine LDAP.
Dim sProp As String = result.Properties("MemberOf")(i)
'Extrait le nom du groupe de la chaine.
colEntry.Add(sProp.Substring(3, sProp.IndexOf(",") - 3))
Next
Catch ex As Exception
exeption = ex
Finally
'Libère les ressources.
searcher.Dispose()
End Try
Return colEntry
End Function |
Partager