0

我正在使用 ADSI 提供程序从 C# 客户端绑定到 ADAM 实例。当绑定失败时,我会返回一个表明失败的通用错误条件。如果我查看流量的网络跟踪,我可以看到 ADAM 实例本身将扩展错误信息发送回我的客户端,指示此身份验证失败的原因,但似乎 ADSI 提供程序丢弃了此扩展信息,只是向我提供了事实绑定失败。

例如,在失败的绑定中,会抛出一个带有 ErrorCode 属性的 COMException,该属性将始终包含值 8007052E。如果我查看网络跟踪,则 LDAP 发回失败的原因有多种,其中可能包括密码过期、帐户禁用、密码无效、用户不存在等错误。

有没有办法使用 ADSI 或 COMException 对象来获取这个扩展的错误信息?如果没有,是否有人使用过的其他 .NET 提供程序能够获取此信息?

4

1 回答 1

0

由于我没有任何答案,我将用我的解决方法自己回答。

我没有尝试依赖特定的返回代码并为 LDAP 调用返回数据,而是设置了一个服务帐户,如果绑定失败,它可以对帐户进行额外的调查。例如,如果 user1 的绑定失败,我与服务帐户绑定,查询 user1 帐户并读取帐户属性以进一步确定绑定失败的原因,然后将该信息返回给最终用户。

于 2010-05-17T13:33:17.353 回答