Bonjour,

je cherche à porter une appli Perl en C#.

L'appli Perl effectue une requete LDAP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
my $ldap = ldap_bind($serveur_ldap, $ldap_user, $ldap_passwd);
$resultat = ldap_search($ldap, "(&(entityname=$toto)(objectclass=Entity))",
$attrs, "NetworkNumber=0,o=nmc", 1);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
DirectoryEntry Ldap = new DirectoryEntry(serveur,user,passwd,
AuthenticationTypes.ReadonlyServer);
DirectorySearcher searcher = new DirectorySearcher(Ldap);
searcher.Filter = "(&(entityname=00108b00)(objectclass=Entity))";
SearchResult result = searcher.FindOne();
En sniffant le réseau, on voit bien que la requete est bien lancée :



En revanche, objectName est étrangement à blancs, le paramètre o=nmc est pré-renseigné (alors que je ne l'ai pas mis dans ma requete C#).

Ici on voit bien que le filtre est bien envoyé :



Enfin, le retour de la requete : nosuchobject :



  • Je ne vois pas où renseigner le paramètre "NetworkNumber=0", qui semble-t-il, est la racine Root.
    J'ai bien tenté de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    searcher.SearchRoot.Path = "NetworkNumber=0,o=nmc";
    avant le FindOne(); mais alors la requete est erronée et pas envoyée...
  • que manque-t-il dans mon code pour que cette requete fonctionne ?


Merci d'avance pour votre aide