我正在尝试为我的 .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)
我已经尝试过这篇文章(使用格式正确的 oid)以及这篇文章(在您的 ldap 路径中使用完全限定的域名 - 我使用的是 LDAP://mymachine.company.local/... 之类的东西)中的建议。其他人建议,由于 COM 错误代码意味着 E_ADS_CANT_CONVERT_DATATYPE 我的属性或架构有问题,但属性设置为 DirectoryString,我可以读取其他相同类型的默认字段。
我知道使用 OpenDS 与 Active Directory 的工作方式不同,我有一个单独的 AD 模块可以正常工作,我只是想知道是否有人有与 OpenDS 或 Sun One LDAP 实现交谈的经验。
想法?我在谷歌上找不到太多同时处理 OpenDS 和 .NET 的内容,这让我觉得我应该做点别的事情。正如我所说的,AD 的东西工作得很好,但是我真的很想用 OpenDS 也能做到这一点。
谢谢!
生锈的