我使用ADSI提供程序从C#客户端绑定到ADAM实例。当绑定失败时,我得到一个表示失败的通用错误条件。如果我查看流量的网络跟踪,我可以看到ADAM实例本身将扩展错误信息发送回我的客户端,说明此身份验证失败的原因,但似乎ADSI提供商丢弃了这些扩展信息并且只是向我提供了这样的事实绑定失败了。
例如,在失败的绑定中,抛出一个带有ErrorCode属性的COMException,该属性将始终包含值8007052E。如果我查看网络跟踪,LDAP发送回的失败有多种原因,可能包括密码过期,帐户已禁用,密码无效,用户不存在等错误。
有没有办法使用ADSI或COMException对象获取此扩展错误信息?如果没有,是否有人使用过其他能够获取此信息的.NET提供程序?
答案 0 :(得分:0)
由于我没有得到任何答案,我会用自己的解决方法自行回答。
我没有尝试依赖特定的返回代码并返回LDAP调用的数据,而是设置了一个服务帐户,如果绑定失败,可以对帐户进行额外的调查。例如,如果user1的绑定失败,我将绑定服务帐户,查询user1帐户并读取帐户属性以进一步确定绑定失败的原因,然后将该信息返回给最终用户。