我正在使用 ADSI 提供程序从 C# 客户端绑定到 ADAM 实例。当绑定失败时,我会返回一个表明失败的通用错误条件。如果我查看流量的网络跟踪,我可以看到 ADAM 实例本身将扩展错误信息发送回我的客户端,指示此身份验证失败的原因,但似乎 ADSI 提供程序丢弃了此扩展信息,只是向我提供了事实绑定失败。
例如,在失败的绑定中,会抛出一个带有 ErrorCode 属性的 COMException,该属性将始终包含值 8007052E。如果我查看网络跟踪,则 LDAP 发回失败的原因有多种,其中可能包括密码过期、帐户禁用、密码无效、用户不存在等错误。
有没有办法使用 ADSI 或 COMException 对象来获取这个扩展的错误信息?如果没有,是否有人使用过的其他 .NET 提供程序能够获取此信息?