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

Dotnet Discussion :

Connexion à un annuaire LDAP


Sujet :

Dotnet

  1. #1
    Membre habitué Avatar de Dark Ryus
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Points : 162
    Points
    162
    Par défaut Connexion à un annuaire LDAP
    Bonjour,

    Je dois me connecter à un annuaire LDAP pour récupérer un certificat.
    Je suis en VB.Net.

    J'ai fait beaucoup de tentatives mais j'ai des erreurs plutôt vagues et après des jours de recherche je bloque toujours.

    Je retrouve presque tout le temps les même exceptions :
    - System.Runtime.InteropServices.COMException(0x80072030): There is no such object on the server at System (Cet objet ne se trouve pas sur le serveur)
    - COMException (0x8007200a): L’attribut ou la valeur de service d’annuaire spécifié n’existe pas

    Dans tous les cas une exception se lève quand j'appelle FindOne() ou FindAll().

    Dans mon exemple de code ci-dessous vous pourrez voir des morceau en commentaires car j'essai de faire un peu de tout et n'importe quoi pour arriver à faire quelque chose.

    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
    'Dim ldapUrl = "LDAP://annuaire.sesam-vitale.fr"
                    Dim ldapUrl = "LDAP://annuaire.sesam-vitale.fr/cn=amo_pj.test@test.rss.fr,ou=AC-FACTURATION,ou=AC-SESAM-VITALE-2034,o=sesam-vitale,c=fr"
     
                    Dim de As DirectoryEntry = New DirectoryEntry(ldapUrl)
                    de.AuthenticationType = AuthenticationTypes.None
                    Dim dsearch As DirectorySearcher = New DirectorySearcher(de)
                    dsearch.Filter = "(objectClass=*)"
                    'dsearch.Filter = ""
                    Dim rs As SearchResult = dsearch.FindOne()
                    'Dim rc As SearchResultCollection = dsearch.FindAll()
     
                    'de = rs.GetDirectoryEntry()
     
                    'For Each r As SearchResult In rc
                    '    If r.Properties.Contains("userCertificate") Then
                    '        Dim b As Byte() = de.Properties("userCertificate").Value
                    '        Dim cert1 As X509Certificate = New X509Certificate(b)
                    '    End If
                    'Next
    Je suis vraiment bloqué, je n'ai pas de connaissance sur les annuaires LDAP et tout ce qui est certificat.

    Merci

  2. #2
    Membre habitué Avatar de Dark Ryus
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 333
    Points : 162
    Points
    162
    Par défaut
    J'ai résolu mon problème. C'était bien un problème de syntaxe.

    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
    29
    30
    31
    32
    33
    34
    35
    Public Function certificatLDAP() As X509Certificate2
     
                Dim certificat As X509Certificate2 = Nothing
     
                Dim ldapconn As LdapConnection = New LdapConnection(New LdapDirectoryIdentifier("annuaire.sesam-vitale.fr"))
     
                Try
     
                    ldapconn.AuthType = AuthType.Anonymous
                    ldapconn.SessionOptions.ProtocolVersion = 3
     
     
                    Dim attribut(1) As String
                    attribut(0) = "userCertificate;binary"
     
                    Dim request As SearchRequest = New SearchRequest("cn=amo_pj.test@test.rss.fr,ou=AC-FACTURATION,ou=AC-SESAM-VITALE-2034,o=sesam-vitale,c=fr", "(ObjectClass=*)", Protocols.SearchScope.Base, attribut)
     
                    Dim reponse As SearchResponse = CType(ldapconn.SendRequest(request), SearchResponse)
     
                    For Each test As SearchResultEntry In reponse.Entries
                        For Each toto As DictionaryEntry In test.Attributes
                            Dim tata As DirectoryAttribute = toto.Value
                            Dim tutu As Byte() = tata(0)
                            Return New X509Certificate2(tutu)
                        Next
                    Next
     
                Catch ex As Exception
                    Throw ex
                Finally
                    ldapconn.Dispose()
                End Try
     
                Return certificat
            End Function

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

Discussions similaires

  1. connexion SSH appuye sur un annuaire LDAP
    Par Toeic dans le forum Réseau
    Réponses: 3
    Dernier message: 31/07/2007, 12h01
  2. Réponses: 8
    Dernier message: 25/10/2006, 14h52
  3. [LDAP] Connexion via PHP à un annuaire LDAP sous un serveur Novell
    Par podz dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 15/06/2006, 14h34
  4. [JDBC]connexion entre db2 et l'annuaire ldap
    Par Man Crado dans le forum JDBC
    Réponses: 4
    Dernier message: 10/10/2005, 11h34
  5. [JNDI]connexion entre jndi et l'annuaire ldap
    Par Man Crado dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/10/2005, 11h33

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