Недопустимые символы запроса LDAP - PullRequest
0 голосов
/ 28 февраля 2011

Я застреваю с форматированием запроса LDAP к моей AD. Похоже, что символ «+» портит мне жизнь.

у меня нормально работает следующий запрос:

//C# AD lookup

DirectoryEntry group = new DirectoryEntry(
    "LDAP://mydomain/CN=group name that works,OU=Groups,DC=myDomain,DC=us");

но когда я пытаюсь найти группу, в которой есть символ «+»:

//C# AD Lookup failure with '+' in CN

DirectoryEntry group = new DirectoryEntry(
    "LDAP://mydomain/CN=name+ thatFails,OU=Groups,DC=myDomain,DC=us");

Я получаю исключение "Указан неверный синтаксис dn".

Я передал несколько допустимых имен групп со всеми видами «специальных» символов, таких как «_» и «&», которые работают. похоже, что символ «+» вызывает у меня горе. Как правильно отформатировать CN, чтобы сделать мой запрос действительным?

EDIT

как и предполагалось, я избежал символа '+'. Это, к сожалению, не помогло. ниже мой текущий формат ldap:

LDAP://mydomain/cn=_bigGroup\+ management office,OU=Groups,DC=myDomain,DC=us

Ответы [ 2 ]

3 голосов
/ 01 марта 2011

Видимо вам нужно экранировать некоторые символы с обратной косой чертой, см. Список her e

Обновление:

Обратная косая черта действительно работает.Я создал новый объект пользователя с помощью cn = 'Escape + Test' в своем локальном экземпляре ADAM (размещенном на порту 9389).Я написал небольшую программу для Windows Forms со следующим кодом:

using (DirectoryEntry entry = new DirectoryEntry("LDAP://localhost:9389/CN=Escape\\+Test,OU=MyUsers Users,DC=TEST,DC=LOCAL", "test", "xxxx", AuthenticationTypes.None))
{
     MessageBox.Show(entry.Properties["cn"][0].ToString());
}

Программа показала «Escape + Test», когда я ее запустил.

Обратите внимание на двойную обратную косую черту, чтобы представить действительную обратную косую чертуне спасательный персонаж.Я ожидал бы такого же поведения в полном домене AD.

Так же, как проверка работоспособности, я заменил обратную косую черту на% 2B, как упомянуто в другом ответе, и когда я это сделал, я получил "нет такого объекта на сервере"ошибка при попытке доступа к свойствам записи.

0 голосов
/ 10 апреля 2013

Подключение к LDAP возможно только для определенных пользователей, поэтому нам нужно указать группу пользователей, которые имеют доступ к LDAP, и определить их в пуле приложений. Когда мы создаем новый веб-сайт, добавьте этот пул приложений, который имеет права доступа, Если вы не предоставите правильный пул приложений, мы получим ошибки такого типа.

...