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

C# Discussion :

Requête LDAP


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Par défaut Requête LDAP
    Bonjour à tous,
    J'ai une form qui permet de rechercher un utilisateur dans l'AD.
    Il y a une richtextbox qui permet à l'utilisateur de saisir le login de l'utilisateur et une textbox qui affiche son nom complet.
    Voici le code qui me permet de faire cela :

    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
     
    string ldapReq = @"(&(objectCategory=" + typeObject + ")(saMAccountName=" + objectName + "*))";
    string ldapRoot = "LDAP://" + _txtBox5 + "/" + _txtBox4;
     
    DirectoryEntry sroot = new DirectoryEntry(ldapRoot, _txtBox2, _txtBox3);
    DirectorySearcher searcher = new DirectorySearcher(sroot, ldapReq, new string[] { "member" }, SearchScope.Subtree);
     
    SearchResult sr = searcher.FindOne();
    searcher.PropertiesToLoad.Add("cn");
     
    if (sr != null)
    {
           DirectoryEntry memberAd = new DirectoryEntry("LDAP://" + _txtBox5 + "/" + sr.Path, _txtBox2, _txtBox3);
           textBox3.Text = (string)memberAd.Properties["cn"][0];
    }
     
    else
    {
           MessageBox.Show("Utilisateur non trouvé !", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    Lorsque je saisis un nom de login (existant dans l'Active Directory) il le trouve, mais j'ai une erreur :
    Erreur inconnue (0x80005000)
    Je me demande si ma méthode de recherche est incorrecte, si la syntaxe est erronée, si ma requête LDAP est fausse.
    Pouvez-vous m'aider s'il vous plaît ?
    Merci, bonne journée à tous.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 96
    Par défaut
    Tu veux pas utiliser les "points d'arrêt" et nous dire à quelle ligne exactement a causée cette erreur !!

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Par défaut
    Donc, oui l'erreur portait sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DirectoryEntry memberAd = new DirectoryEntry("LDAP://" + _txtBox5 + "/" + sr.Path, _txtBox2, _txtBox3);
    Je dis "portait" car le path du LDAP était incorrecte. C'est mieux comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DirectoryEntry memberAd = new DirectoryEntry(result.Path, _txtBox2, _txtBox3);
    A présent j'ai un problème de portée de variable. J'ai essayé de déclarer un string en tant que variable statique :

    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
     
    public partial class Form3 : System.Windows.Forms.Form
    {
       private string _saMAccountName = string.Empty;
     
       public void SearchObject()
       {
        ...
        string saMAccountName = (string)memberAd.Properties["saMAccountName"][0];
        saMAccountName = _saMAccountName;
        ...
       }
     
       public void AddAce()
       {
        ...
        NTAccount acct = new NTAccount(_sAMAccountName);
        ...
        }
    }
    ArgumentException sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NTAccount acct = new NTAccount(_saMAccountName);
    Pourquoi _saMAccountName est-il null ? Comment puis-je faire pour y remédier ? Pouvez vous m'éclairer ?
    Un merci d'avance à vous.

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Ca serait pas dans l'autre sens l'affectation plutôt?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _saMAccountName = saMAccountName;

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Par défaut
    c'est effectivement plus logique dans ce sens.
    Merci, bonne journée

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

Discussions similaires

  1. [Mail] Requête LDAP de sélection de données
    Par Yoteco dans le forum Langage
    Réponses: 6
    Dernier message: 11/01/2010, 12h28
  2. Ajout d'un module de requêtes LDAP sur un serveur Asterisk
    Par bouelos dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 22/05/2007, 09h14
  3. Requête LDAP pour trouver les groupes d'un membre
    Par Poussy-Puce dans le forum Langage SQL
    Réponses: 1
    Dernier message: 16/10/2006, 17h56
  4. problème avec une requête LDAP
    Par tfdarklink dans le forum Modules
    Réponses: 2
    Dernier message: 02/08/2006, 16h59
  5. [JNDI/LDAP] Requête LDAP ordonnée
    Par Invité dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 22/06/2006, 09h38

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