.Net et Active Directory : Récupérer Login à partir du nom
EvilGost
Messages postés235Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 mai 2011
-
16 mai 2011 à 11:18
radcur
Messages postés282Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention15 août 2012
-
17 mai 2011 à 03:15
Bonjour à toute la communauté,
je suis actuellement en train de développer une application autour de l'Active Directory, en VB.Net. Il se trouve que je dois récupérer les groupes associés à une utilisateur. Cependant, toutes les codes sources que j'ai trouvé sur le web permettent de récupérer ces groupes à partir du SAMAccountName. Sauf que, dans mon cas, je dois les trouver par rapport au nom et au prénom de l'utilisateur. Quand je regarde les propriétés, il ne me récupère aucun groupe, mais juste le nom, le prénom, l'adresse email et le numéro de téléphone, c'est tout.
Si mon filtre est searcher.Filter = "(sn=SAMAccountNameRecherché)", ça fonctionne impeccable
Si mon filtre est searcher.Filter = "(cn=" & "dupont*eric*" & ")" ou searcher.Filter = String.Format("(&(givenName={0})(sn={1}))", "eric", "dupont") ou même "(DistinguishedName=" & "CN=Dupont Eric XXAI12345,OU=Contacts,OU=AIUY,DC=aiuy,DC=fr,DC=int,DC=societeaiuy,DC=com" & ")"
Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://MonLDAP.Societe.com", "MonLogindeConnexion", "MonMotdePassedeConnexion")
Dim searcher As DirectorySearcher = New DirectorySearcher(Ldap)
searcher.Filter = "(cn=" & "dupont*john*" & ")"
Dim DirEntry As DirectoryEntry
Dim result As SearchResult = searcher.FindOne
DirEntry = result.GetDirectoryEntry
rtbText.Clear() 'RichtextBox qui affiche les infos
rtbText.AppendText("Login : " + DirEntry.Properties("SAMAccountName").Value & vbNewLine)
rtbText.AppendText("displayname : " + DirEntry.Properties("displayname").Value & vbNewLine)
rtbText.AppendText("Nom : " + DirEntry.Properties("sn").Value & vbNewLine)
rtbText.AppendText("Prénom : " + DirEntry.Properties("givenName").Value & vbNewLine)
rtbText.AppendText("Email : " + DirEntry.Properties("mail").Value & vbNewLine)
rtbText.AppendText("Tél : " + DirEntry.Properties("TelephoneNumber").Value & vbNewLine)
rtbText.AppendText("Description : " + DirEntry.Properties("description").Value & vbNewLine)
Dim mesGroupes As Object = DirEntry.Invoke("Groups")
' Récupération de la liste des groupes
For Each unGroupe As Object In CType(mesGroupes, IEnumerable)
Dim groupEntry As DirectoryEntry = New DirectoryEntry(unGroupe)
maListeGroupes.Add(groupEntry.Name)
rtbText.AppendText("groupe : " & groupEntry.Properties("distinguishedName").Value & vbNewLine)
Next
Savez-vous pourquoi? Comment puis-je alors récupérer un SAMAccountName à partir du nom et du prénom ?
A voir également:
.Net et Active Directory : Récupérer Login à partir du nom