Я пытаюсь создать функцию для своего .Net-приложения, чтобы иметь возможность разговаривать с сервером LDAP для чтения атрибутов пользователя и аутентификации пользователей. Я установил тестовый сервер каталогов с использованием OpenDS, добавил настраиваемые атрибуты и объекты и добавил пользователей с новыми типами объектов. Все работает нормально, пока я не попытаюсь прочитать значения настраиваемых атрибутов, я получаю:
{"Unknown error (0x8000500c)"}
at System.DirectoryServices.PropertyValueCollection.PopulateList()
at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
Я пробовал предложения из этого сообщения (при правильном использовании сформированные oids), а также этот пост (используя полное доменное имя в вашем ldap path - я использую что-то вроде LDAP: //mymachine.company.local / ...). Предлагали другие, поскольку код ошибки COM означает E_ADS_CANT_CONVERT_DATATYPE, что-то не так с моими атрибутами или схемой, но атрибуты настроены как DirectoryString, что есть другие поля по умолчанию того же типа, которые я могу прочитать.
Я понимаю, что работа с OpenDS не будет работать так же, как с Active Directory, у меня есть отдельный модуль для AD, который работает нормально, мне просто интересно, имел ли кто-нибудь опыт общения с реализациями OpenDS или Sun One LDAP.
Мысли? Я не могу найти в Google много информации, связанной с OpenDS и .NET вместе, что заставляет меня думать, что я должен делать что-то еще. Как я уже сказал, AD работает нормально, но мне бы очень хотелось иметь возможность делать это и с OpenDS.
Спасибо!
Расти