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 :

[VB.Net]Comment effectuer l'Authentification LDAP ?


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de le Daoud
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2002
    Messages : 287
    Points : 169
    Points
    169
    Par défaut [VB.Net]Comment effectuer l'Authentification LDAP ?
    Bonjour,

    Je rencontre des problèmes avec une authentification ldap.

    Ce code fonctionne. Il me permet d'effectuer des recherches.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://mon.serveur:389/ou=xxx,o=xxx")
    Dim searcher As DirectorySearcher = New DirectorySearcher(Ldap)
    searcher.Filter = "(email=" & email& ")"
    Dim mySearchResult As SearchResult = searcher.FindOne()
    Celui ne fonctionne pas, pour l'authentification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://mon.serveur:389/ou=people,o=xxx", user, pwd, AuthenticationTypes.FastBind)
    Dim searcher As DirectorySearcher = New DirectorySearcher(Ldap)
    searcher.Filter = "(email=" & email& ")"
    Dim mySearchResult As SearchResult = searcher.FindOne()
    Le message est le suivant :"Une syntaxe DN non valide a été spécifiée"

    J'ai essayé d'autres possibilités comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DirectoryEntry("LDAP://mon.serveur:389", "uid=" & user & "ou=people,o=xxx", pwd, AuthenticationTypes.FastBind)
    Cela leve une exception si l'authentification est éronnée avec comme message "Échec d'ouverture de session" ce qui est ce que je souhaite, mais si le user et le mot de passe sont bons j'ai aussi une exception sur le FindOne("cet objet n'existe pas...").


    Une idée ?



    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut
    ca repond pas directement
    http://www.developpez.net/forums/viewtopic.php?t=460541

    une fois que tu as installé le soft
    tu pourras récuperer les adresses et filtres que le soft utilise pour accèder
    a une personne, mêmes adresses qu'il faudra mettre dans les filtres et & de ton code .net

  3. #3
    Membre habitué Avatar de le Daoud
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2002
    Messages : 287
    Points : 169
    Points
    169
    Par défaut
    Je te remercie .
    J'avais parcouru ton poste lors de ma recherche précédent la composition de mon message. Cependant je ne crois pas que cela vienne du filtre, car par exemple celui basé sur l'email fonctionne, la recherche me retournant le résultat attendu.
    Enfin, je vais tout de même regarder ce soft

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut
    je n'ai plus les objets exactement en tête mais
    si dans ton
    Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://mon.serveur:389/ou=people,o=xxx", user, pwd, AuthenticationTypes.FastBind)
    Dim searcher As DirectorySearcher = New DirectorySearcher(Ldap)
    searcher.Filter = "(email=" & email& ")"
    le user pwd correspond au user auquel tu veux ramener l'email
    cherche directement
    dans les properties de ton DirectoryEntry Ldap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ldap.Properties("email").ToString()
    sans faire de directorySearcher

  5. #5
    Membre habitué Avatar de le Daoud
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2002
    Messages : 287
    Points : 169
    Points
    169
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://xxx.xxx:389", "uid=" & user & ",ou=people,o=xxxx", pwd, AuthenticationTypes.FastBind)
    Dim tmp As String = Ldap.Properties("mail").Value
    Pas de valeur dans tmp. Ceci dit cela ne lève pas d'exception, ce qui est mieux

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 94
    Points : 67
    Points
    67
    Par défaut
    Es-tu certain que l'attribut email est visible par une connection fastbind?

    Suite à mon dernier post pour voir certains attributs, je devais me connecter avec un user avec des droits admin et a ce moment la seulement lire les attributs.

    Sinon je ne pouvais lire que les attrbiuts publiques.

    Pour voir cela dans softerra tu peux mettre des credentials spécifiques pour te connecter a LDAP tu pourra alors voir si tu es autoriser a voir ce champ ave cle user que tu entres.

  7. #7
    Membre habitué Avatar de le Daoud
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2002
    Messages : 287
    Points : 169
    Points
    169
    Par défaut
    Merci pour ton aide,

    Ton soft m'a permis effectivement d'y voir plus clair.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://xxx.xxx:389/o=xxx", "uid=" & user & ",ou=people,o=xxx", pwd, AuthenticationTypes.FastBind)
    ça marche

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

Discussions similaires

  1. [VB.Net] Comment récupérer les Attributs LDAP ?
    Par le Daoud dans le forum VB.NET
    Réponses: 6
    Dernier message: 03/03/2006, 11h45
  2. Réponses: 9
    Dernier message: 13/02/2006, 08h39
  3. [VB.NET] Comment effectuer le Checksum de Bytes ?
    Par alx3d dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/02/2006, 10h52
  4. [ADO.Net][VB.NET][DataAdapter] Comment effectuer l'Update ?
    Par Anubis666 dans le forum Accès aux données
    Réponses: 14
    Dernier message: 19/01/2006, 15h16

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