ActiveDirectory - Obtenir le(s) groupe(s) auquel(s) un utilisateur appartient

Contenu du snippet

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


Compatibilité : VB 2005

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.