PrincipalContext - я не могу подключиться к локальному серверу openldap

Я установил сервер openldap for windows и использую LDAPAdmin для подключения к нему со значениями по умолчанию:

Server=ldap://localhost:389
Base:dc=maxcrc,dc=com
UserName:cn=Manager,dc=maxcrc,dc=com
Password:secret

Теперь я хочу использовать PrincipalContext для добавления пользователей в мой ou=People Проблема в том, что я даже не могу подключиться к серверу с помощью PrincipalContext. Я искал в сети и нашел много ответов о том, как подключиться к серверу ldap, но ни один из них не работает для меня. Я продолжаю получать NullReferenceException или ServerNotFoundException для различных комбинаций предоставленных параметров для конструктора PrincipalContext. Я думал, что могу использовать PrincipalContext как одно из следующих:

new PirncipalContext(ContextType.Domain,"maxcrc.com","dc=maxcrc,dc=com")

or

new PrincipalContext(ContextType.ApplicationDirectory,"localhost:389","dc=maxcrc,dc=com")

но ни один из них не работает. Некоторые говорят, что я должен указать имя пользователя и пароль, поэтому я сделал это, но я продолжаю получать исключения.

Итак, скажите мне, как я могу использовать PrincipalContext для подключения к openldap?

P.S. Мой компьютер уже присоединен к контроллеру домена Active Directory.


person Beatles1692    schedule 11.03.2015    source источник
comment
Вы использовали DirectoryEntry или PirncipalContext ?   -  person Kiquenet    schedule 21.12.2016


Ответы (1)


Согласно официальной документации на MSDN указывает:

Пространство имен System.DirectoryServices.AccountManagement обеспечивает унифицированный доступ и манипулирование пользователями, компьютерами и группами участников безопасности в нескольких основных хранилищах: доменные службы Active Directory (AD DS), Active Directory Облегченные службы каталогов (AD LDS) и Machine SAM (MSAM). System.DirectoryServices.AccountManagement управляет объектами каталога независимо от пространства имен System.DirectoryServices.

Эти классы полезны только для Active Directory — они не переносимы в другие "универсальные" хранилища LDAP.

Если вам необходимо поддерживать OpenLDAP, либо используйте DirectoryEntry и эти функции, либо используйте уровень нижнего уровня System.DirectoryServices.Protocol (голый LDAP).

person marc_s    schedule 11.03.2015