Bonjour,
Je travail actuellement sur une application en relation avec Active Directory (LDAP) et le langage C#. Cela fait déjà un moment que je suis dessus, je me suis bien documenté sur le sujet avec, entre autre, les tutoriels du site, mais là j'ai un soucis.
En effet, je n'arrive pas à récupérer une propriété précise d'un objet AD.
Donc normalement pour récupérer un objet de l'AD il y deux possibilités, soit on crée un DirectoryEntry avec son distinguished name :
En l'occurrence ici c'est un objet particulier puisqu'il s'agit du noeud racine de mon domaine, mais normalement cela ne change rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DirectoryEntry myEntry = new DirectoryEntry("LDAP://192.168.1.1/DC=domaine, DC=lan", "username", "password");
Donc normalement mon objet "myEntry" contient toutes les propriétés de l'objet AD correspondant, j'essaie donc de récupérer sa propriété "canonicalName" de type multi-value string, grâce à :
Mais lors de l'execution ça ne rentre pas dans la boucle. Lorsque je liste l'ensemble des propriétés (attribut correspondant à l'objet AD) de l'objet "myEntry", grâce à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach(string tmp in myEntry.Properties["canonicalName"]) { MessageBox.Show(tmp); }
La propriété "canonicalName" n'est pas présente ! Pourtant dans AD cet objet à bien une valeur pour l'attribut correspondant (vérifier grâce ADSIEdit & AD User & Computer)
Code : Sélectionner tout - Visualiser dans une fenêtre à part myEntry.Properties.PropertyNames;
J'ai donc essayé l'autre solution de récupération d'un objet AD, j'ai fait une recherche de mon objet par le biais d"un DirectorySearcher :
Le résultat est le même je ne récupère toujours pas ma propriété ! J'ai même essayé cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DirectorySearcher mySearch = new DirectorySearcher(myEntry); mySearch.Filter = "(dc=grp-1)"; search.SearchScope = SearchScope.Base;
Mais "canonicalName" n'est toujours pas présent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mySearch.PropertiesToLaod.Add("canonicalName");
Merci d'avance pour votre aide, car je ne voie aucune solution à mon problème.
A noté au passage que ce "PropertiesToLaod" n'a jamais eu d'effet chez moi, même lorsque je n'indiquait qu'un seule propriété a récupérer, il m'en ramenait plein.
Partager