IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Recherches LDAP et Attributs personnalisés


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Par défaut Recherches LDAP et Attributs personnalisés
    Bonjour,

    Après avoir parcouru le forum, parcouru des tutoriels, je n'arrive pas à faire correctement ma recherche LDAP.

    Je code un petit programme d'exercice de recherche LDAP qui servira par la suite a faire de plus gros traitement une fois terminé.

    Mon problème est que je n'arrive pas à récuperer mes attributs personnalisés. Cependant, j'arrive aisément à récuperer d'autres champs présents par défauts (mail, givenname..).

    J'ai essayer toute les possibilité d'authentification. Mon try me ramène l'erreur :

    "Erreur inconnue (0x8000500c)"

    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Private Sub b_chercher_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_chercher.Click
     
    Dim Ldap As DirectoryEntry
    Dim pass As String = "*****"
    Dim util As String = "cn=*****,dc=****,dc=fr"
    Dim adress As String = "LDAP://*****.*****.fr/dc=*****,dc=fr"
    Dim searcher As DirectorySearcher
     
    Try
     
    Ldap = New DirectoryEntry(adress, util, pass, AuthenticationTypes.ReadOnlyServer)
     
    searcher = New DirectorySearcher(Ldap)
    searcher.Filter = "(sn=" & tbx_nomUser.Text & ")"
     
    Dim result As SearchResult = searcher.FindOne()
    Dim DirEntry As DirectoryEntry = result.GetDirectoryEntry()
     
    tbx_resultat.Text = DirEntry.Properties(tbx_attribut.Text).Value
     
    Catch ex As Exception
     
    MsgBox(ex.Message)
     
    End Try
     
    End Sub

  2. #2
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Rebonjour,

    Je crois qu'il existe des exemples de script vb pour aller chercher des infos dans le LADP, tu télécharge VBSEdit et il te donne tout plein d'exemple tu n'as plus qu'a vérifier.

  3. #3
    Membre expérimenté Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Par défaut
    VBSEdit, c'est pour faire du VBscript, je cherche à le faire en VB.NET (sous framework 3.5 sp1)

  4. #4
    Membre confirmé Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Par défaut
    Le code est "casi" le même enfin du moins l'idée de l'algo sera là.

    sur quel ligne il déclenche l'erreur exactement ?

  5. #5
    Membre expérimenté Avatar de AcidLines
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Février 2010
    Messages : 198
    Par défaut
    Le problème survient lors la récupération de l'attribut que je recherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tbx_resultat.Text = DirEntry.Properties(tbx_attribut.Text).Value
    Cela ne survient que sur certains attributs, dont tout ceux qui sont personnalisés.

    sans doute un problème d'authentification, mais je ne vois pas lequel..

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Hello,

    Voici ce que j'avais pondu à une époque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    'connexion active directory
            ldap = New DirectoryEntry(maConnectionStringQuiVaBien)
            searcher = New DirectorySearcher(ldap)
     
            'pour trouver les membres d'un groupe
            With searcher
                .SearchRoot = ldap
                .Filter = "(&(ObjectClass=Group)(CN=leNomDuGroupe))"  '<<< Change the Group name here
            End With
     
            Dim Members As Object = searcher.FindOne.GetDirectoryEntry.Invoke("Members", Nothing) '<<< Get members
            Dim i As Integer = 0
            'Dim prenom, nom, username As String
            Dim desc As String
            Dim sw As New IO.StreamWriter("username.txt")
     
            For Each Member As Object In CType(Members, IEnumerable)  '<<< loop through members
                Dim CurrentMember As New DirectoryEntry(Member) '<<< Get directoryentry for user
                nom = CurrentMember.Properties.Item("sn").Value.ToString
                prenom = CurrentMember.Properties.Item("givenName").Value.ToString
                username = CurrentMember.Properties.Item("homeDirectory").Value.ToString
                desc = CurrentMember.Properties.Item("description").Value.ToString
                ListBox1.Items.Add(nom & ";" & prenom & " - " & username.Substring(username.LastIndexOf("\") + 1))  '<<< Add user's CN(common name) to listbox
                sw.WriteLine(nom & ";" & prenom & ";" & username.Substring(username.LastIndexOf("\") + 1) & ";" & desc)
            Next
            sw.Close()
            sw.Dispose()
    C'est à améliorer car il plante si le groupe contient un autre groupe.

    Et pour trouver un user précis (tjs en utilisant ta connexion ldap définie plus tôt)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            'pour trouver un user précis
            searcher.Filter = "(sn=leUsernameAChercher)"
     
            Dim result As SearchResult = searcher.FindOne
            DirEntry = result.GetDirectoryEntry
            'affiche une liste des propriétés dans une liste box
            For Each prop As Object In DirEntry.Properties.PropertyNames
                ListBox1.Items.Add(prop.ToString)
            Next
     
            'affiche la propriété givenName dans un textbox
            tbname.Text = DirEntry.Properties("givenName").Value
    J'espère que cela pourra t'aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. LDAP: recherche sur un attribut multivalué
    Par yjuliet dans le forum Sécurité
    Réponses: 1
    Dernier message: 13/10/2008, 17h59
  2. Ajouter des attributs personnalisés dans un schéma XSD
    Par hollywood dans le forum Services Web
    Réponses: 0
    Dernier message: 24/09/2008, 10h47
  3. Réponses: 4
    Dernier message: 24/03/2008, 10h08
  4. recherche sur un attribut collection
    Par avereyl dans le forum Hibernate
    Réponses: 1
    Dernier message: 06/08/2007, 11h13
  5. [LDAP] Recherche LDAP/AD en php
    Par Eddu37 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 20/07/2007, 13h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo