.Net et Active Directory : Récupérer Login à partir du nom

Signaler
Messages postés
235
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 mai 2011
-
Messages postés
282
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
15 août 2012
-
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 ?

1 réponse

Messages postés
282
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
15 août 2012
2
salut


je peux te suggerer de regarder avec UserPrincipal.

UserPrincipal permet de faire des recherches sur différents champs

sinon je te refere à ce site
http://www.codeproject.com/KB/system/activedirquery.aspx

il est en c# mais ca permet de voir comment faire une recherche sur le nom ou le prénom.