gpt4 book ai didi

c# - .net ldap opends 读取自定义属性 0x8000500c

转载 作者:行者123 更新时间:2023-11-30 18:38:41 29 4
gpt4 key购买 nike

我正在尝试为我的 .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)

我已经尝试了来自 this post 的建议(使用正确形成的 oids)以及 this post (在您的 ldap 路径中使用完全限定的域名 - 我正在使用类似 LDAP://mymachine.company.local/... 的东西)。 Others have suggested因为 COM 错误代码表示 E_ADS_CANT_CONVERT_DATATYPE,所以我的属性或架构有问题,但属性设置为 DirectoryString,其中还有其他我可以读取的相同类型的默认字段。

我知道使用 OpenDS 的工作方式与 Active Directory 不同,我有一个单独的 AD 模块可以正常工作,我只是想知道是否有人有过使用 OpenDS 或 Sun One LDAP 实现的经验。

想法?我在谷歌上找不到太多同时处理 OpenDS 和 .NET 的信息,这让我觉得我应该做些别的事情。正如我所说,AD 的东西工作正常,但我真的很想也能用 OpenDS 做到这一点。

谢谢!

生锈

最佳答案

使用一个已知的好工具,例如 ldapsearch 来验证 LDAP 客户端确实可以请求和接收所需的条目和属性。例如:

ldapsearch --hostname hostname \
--port port \
--bindDn your-auth-id \
--bindPassword credentials-for-your-auth-id \
--useSSL \
--trustAll \
--baseDn your-base-object \
--searchScope the-scope-you-use \
'(&)' \
your-custom-attribute-names

使用与 LDAP 客户端代码中相同的参数。如果上述搜索成功,则服务器配置正确,条目存在,并且 auth ID 有权检索这些条目和自定义属性。否则,它们可能是 LDAP 客户端代码中的问题。

另见

关于c# - .net ldap opends 读取自定义属性 0x8000500c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000339/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com