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

EvilGost Messages postés 235 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 mai 2011 - 16 mai 2011 à 11:18
radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 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 ?

1 réponse

radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 2
17 mai 2011 à 03:15
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.
0
Rejoignez-nous