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

Windows Forms Discussion :

[C#] Active directory LDAP


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Points : 43
    Points
    43
    Par défaut [C#] Active directory LDAP
    Bonjour,

    J'ai un petit souci. J'ai beau chercher sur le net, j'arrive pas à passer un cap.
    J'essai tout simplement d'accéder à un Active directory sur une autre machine via une appli en C#.
    Le problème, c'est que lorsque j'essai d'établir la connexion, je tombe sur l'erreur suivante :
    Additional information: Une référence a été renvoyée par le serveur.
    Je comprends pas, encore, ça me dirai que le serveur est inaxessible je dis pas mais là...
    Je donne mon code au cas où ce soit ça le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string LDAPPATH = "LDAP://domaine.com/DC=microsoft,DC=com";
    DirectoryEntry entry = new DirectoryEntry( LDAPPATH, "login", "password");
    Object obj = entry.NativeObject;
    Et paf, plantage.

    Merci d'avance aux personnes se penchant sur la question

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Salut,
    J'avais le meme problème. j'avais posté la question sur developpez.com.
    Toujours sans réponse.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Points : 43
    Points
    43
    Par défaut
    Ouai je l'ai vu, c'est pour ça que je re-post

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    j'ai vu le post y 3 jours, mais je n'avais pas le temps de me pencher dessus. personnellement je n'ai eu strictement aucun problème, mais je me demande d'où sort ton exemple de code j'ai aussi pris dans la msdn et c'est pas exactement comme ca.

    en tout cas, pour moi,:
    ( ca parait bizarre, mais parce que j'ai unr form qui liste les domaines dans une listview, pour quon puisse choisir le domaine et après, ca modifie le directory entry de la Form principale (ici frm))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void BTN_connect_Click(object sender, System.EventArgs e)
    {
      this.frm.rootDomain = new DirectoryEntry("LDAP://" + listDomains.SelectedItem.ToString());
      // création du directory entry
     
      this.frm.rootDomain.Password=this.TB_Password.Text;
      // indique le password admin pour se connecter
     
      this.frm.rootDomain.Username=this.TB_Login.Text;
      // indique le login admin pour se connecter
     
      this.Close();
    }
    le chemin, cest le nom du serveur. par exemple LDAP://Mon_server

    je n'utilise jamais le FQDN(full qualified domain name) et jusqu'a maintenant, je n'ai eu aucun problème.

    ensuite, on a donc notre directoryentry, valide et connecté.et après je peux lister par exemple les utilisateurs d'AD:
    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
    36
    37
    38
    39
    40
    #region Rempli la liste des utilisateurs d'active directory
    private void Listing_Final(string LeFiltre)
    {
      try
      {
        this.Cursor=Cursors.WaitCursor;
        // je change le curseur pour indiquer le debut de la recherche
     
        System.DirectoryServices.DirectoryEntry entry = this.directoryEntry1;//this.remoteForm.rootDomain;
        System.DirectoryServices.DirectorySearcher mySearcher = new System.DirectoryServices.DirectorySearcher(entry);
        mySearcher.Filter = ("(objectClass=" + LeFiltre +")");
        this.LST_Users.Items.Clear();
        foreach(System.DirectoryServices.SearchResult resEnt in mySearcher.FindAll())
        {
          // pour chaque objet trouvé
          try
          {
            // je vais récupérer son nom
            System.DirectoryServices.DirectoryEntry de=resEnt.GetDirectoryEntry();
            ListViewItem lvi=new ListViewItem();
            // je crée un nouvel item
     
            lvi.ImageIndex=1;
            // je lui spécifie l'icone utilisateurs
     
            lvi.Text=de.Name.Replace("CN=","");
            // j'enlève le début:'CN='
     
            this.LST_Users.Items.Add(lvi);
            // j'ajoute l'item dans la listview
          }
          catch{}
     
          this.Cursor=Cursors.Default;
          // je remet le curseur à l'état normal
        }
      }
      catch{}
    }
    #endregion
    ps: desolé jai le flemme de remettre en page le code ici

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Points : 43
    Points
    43
    Par défaut
    Merci beaucoup d'avoir répondu. Tu m'enlève une bonne épine du pied. Au final, je ne sais pas pourquoi ça me faisait cette érreur mais je vais utiliser ta méthode.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 48
    Points : 43
    Points
    43
    Par défaut
    Merci pharaonix, c'est bon je l'ai essayé et je l'ai adopté

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    en fait, la methode est identique, tu fournissait les parametres a la creation du directoryentry, ca devait donc être le FQDN qui devait être incorrect.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 19
    Points
    19
    Par défaut
    Bnojour,
    j'arrive toujours pas à me connecter à l'active Directory
    en fait, j'ai un peu du mal à comprendre cette portion du code (je suis une débutante en programmation C#
    est ce que je peux avoir plus d'explications
    Merci beaucoup

  9. #9
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    lamiae, tu dois suivre plusieurs etapes du plus debutant a plus compliquer. j'ai commencé le c# y quelques mois et AD etait mon premier projet donc faut faire petit a petit.

    1 tu code a meme le serveur. soit tu en montes un (le mieux) soit vmware ou virtualpc mais là faut une license, donc la methode une reste la mieux. tu code en local, et le directory entry, tu le fait pointer vers
    (de memoire)
    RootDSE devrait donner le domaine sur laquelle tu es connecté or tu es le serveur donc ca te donne le bon domaine.
    tu regarde si tu peux te connecter et travailler dessus

    2eme etape, toujours en local, tu remplace RootDSE par le nom du serveur directement (nom de la machine) et tu test


    3eme etape, tu liste les domaine du reseau, tu choisi le bon et tu test
    tout ca en local


    4eme etape, depuis une autre machine, tu liste, tu choisi le bon serveur et tu teste mais en donnant un logine et pwd avec droits admin.

    Il y a peut etre une methode plus pedadogique, plus complete, mais moi, j'ai appris/compris, tout seul, comme ca, sur le tas.

    au pire donne ton code ou met en ligne quelque part qu'on puisse le tester

  10. #10
    Membre régulier Avatar de toxine
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Points : 78
    Points
    78
    Par défaut
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string LDAPPATH = "LDAP://domaine.com/DC=microsoft,DC=com";
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string LDAPPATH = "LDAP://DC=domaine,DC=com";
    j'avais un problème similaire mais c'est résolu depuis que j'ai utilisé le nom de domaine complet (entreprise.fr donne DC=entreprise,DC=fr)

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

Discussions similaires

  1. [Joomla!] Authentification Active Directory / LDAP automatique
    Par leglen38 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 26/11/2010, 15h09
  2. Active directory/LDAP - Affectation utilisateurs dans groupes
    Par SuperPat dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 24/04/2008, 17h26
  3. Réponses: 5
    Dernier message: 15/03/2007, 09h52
  4. [POO] Créer un user dans une Active Directory (LDAP)
    Par Invité dans le forum Langage
    Réponses: 15
    Dernier message: 17/06/2006, 00h46
  5. Active Directory, LDAP et JAVA
    Par jessica94 dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 15/03/2006, 17h43

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