Je suis coincé avec le formatage d'une requête LDAP sur mon AD. Il semble que le caractère '+' gâche ma vie.Caractères non valides de requête LDAP
la requête suivante fonctionne bien pour moi:
//C# AD lookup
DirectoryEntry group = new DirectoryEntry(
"LDAP://mydomain/CN=group name that works,OU=Groups,DC=myDomain,DC=us");
mais quand je tente de trouver un groupe qui a le signe « + » en elle:
//C# AD Lookup failure with '+' in CN
DirectoryEntry group = new DirectoryEntry(
"LDAP://mydomain/CN=name+ thatFails,OU=Groups,DC=myDomain,DC=us");
Je reçois un « non valide La syntaxe dn a été spécifiée 'exception.
J'ai passé un tas de noms de groupes valides avec toutes sortes de caractères 'spéciaux' tels que '_' et '&' qui fonctionnent. il semble que le caractère «+» est ce qui cause mon chagrin. Comment puis-je formater mon CN correctement pour rendre ma requête valide?
EDIT
comme le suggère, je me suis évadé du char '+'. Cela n'a malheureusement pas aidé. ci-dessous est mon format actuel ldap:
LDAP://mydomain/cn=_bigGroup\+ management office,OU=Groups,DC=myDomain,DC=us
Avez-vous utilisé des barres obliques inverses doubles dans votre code ou utilisez-vous l'opérateur littéral? par exemple. new DirectoryEntry ("LDAP: // mondomaine/cn = _bigGroup \\ + bureau de gestion, OU = Groupes, DC = myDomain, DC = us") ou nouveau DirectoryEntry (@ "LDAP: // mydomain/cn = _bigGroup \ + bureau de gestion, OU = Groupes, DC = myDomain, DC = nous " Je crois qu'il doit s'agir d'une barre oblique inverse réelle, pas un caractère d'échappement dans une chaîne C# –
voir ma réponse mise à jour ci-dessous. ('\\') avant que le caractère échappé ne fonctionne –