2010-05-05 17 views
0

我使用ADSI提供程序綁定到來自C#客戶端的ADAM實例。當綁定失敗時,我得到一個通用的錯誤條件,表明失敗。如果我查看流量的網絡跟蹤,我可以看到ADAM實例本身會將擴展錯誤信息發回給我的客戶端,說明爲什麼此身份驗證失敗,但ADSI提供程序似乎放棄了此擴展信息,並僅向我提供了事實綁定失敗。在C#中使用ADSI LDAP綁定錯誤代碼

例如,在一個失敗的綁定中,COMException拋出的ErrorCode屬性將始終包含值8007052E。如果我查看網絡跟蹤,LDAP發送失敗的原因有很多,並且可能包含密碼過期,帳戶禁用,密碼無效,用戶不存在等錯誤。

有什麼辦法可以使用ADSI或COMException對象獲取此擴展錯誤信息?如果沒有,有人使用過的其他.NET提供程序是否可以獲取此信息?

回答

0

由於我沒有任何答案,我會用我的解決方法自己回答。

我沒有試圖依賴特定的返回碼併爲LDAP調用返回數據,而是設置了一個服務帳戶,可以在綁定失敗時對帳戶執行其他調查。例如,如果user1的綁定失敗,我使用服務帳戶綁定,查詢user1帳戶並讀取帳戶屬性以進一步確定綁定失敗的原因,然後將該信息返回給最終用戶。