2012-04-04 83 views
0

如果我有一個PrincipalContext連接到ActiveDirectory服務器(與某些憑據),然後我可以調用其ValidateCredentials方法來驗證一些其他憑據(例如一些其他用戶名/密碼對與用於PrinicapContext連接的憑證不同)。如何做與PrincipalContext.ValidateCredentials相同,但與LdapConnection(非特定於AD)

我想要做基本相同的事情,但與LdapConnection。我有一個LdapConnection成功連接並綁定到一個openLDAP服務器。現在我想驗證一組不同的憑證。我預計這些憑據將需要是一個着名的&密碼對,而不是上面的用戶名&密碼對;沒關係。

我想我可以創建一個臨時的第二個LdapConnection並通過與第二組憑證綁定來驗證。

有沒有更好的方法來做到這一點?特別是,有沒有辦法使用我現有的LdapConnection驗證/認證其他憑證?順便說一句,我爲此在C#4.0中。

回答

0

應用程序代碼可以通過更改現有連接的身份驗證狀態(僅限LDAPv3)來驗證憑據。該過程通過傳輸bindrequest並檢查來自服務器的響應來完成。如果來自服務器的綁定響應中的結果代碼是0,則憑證是正確的,並且該帳戶(由專有名稱標識)是可用的。如果綁定響應中的結果代碼不爲零,則發生錯誤:可能憑據無效,專有名稱不存在,與專有名稱關聯的帳戶被禁用或出現其他錯誤。

這可以使用現有連接完成,或者應用程序可以建立新連接並在新連接上傳輸綁定請求。

+0

謝謝,我使用LDAPv3。我想要驗證第二組憑據而不更改現有連接的身份驗證狀態。我沒有遇到任何憑證不好的問題。如果我要與現有連接上的第二個憑證綁定,這會改變我的身份驗證狀態。在PrincipalContext示例中,可以使用現有連接驗證第二個憑證,而不更改連接的身份驗證狀態。綁定請求是驗證憑據的唯一方法嗎?如果是這樣,那麼我會創建第二個連接。 – 2012-04-05 16:59:01

+0

是的,使用綁定請求來驗證憑證。 – 2012-04-05 20:52:00

相關問題