我正在與使用傳輸安全性和證書身份驗證設置WCF服務(WebHttpBinding)的供應商合作。我爲正在正常工作的供應商提供類似的服務,所以我有一個基本的想法,它應該如何工作。儘管ServerCertificateValidationCallback返回true,但「無法爲具有權限的SSL/TLS建立安全通道」
在Windows 7上運行時,當我使用我自己的帳戶下的服務時,一切正常,我得到一個迴應。當我在測試帳戶下使用它時,我在mscorlib中遇到了一個異常:「無法爲權限爲X.X.X.X的SSL/TLS建立安全通道」。如果我將測試帳戶添加到內置的管理員組中,它可以正常工作。
服務器的證書是自簽名的,主題字段設置爲CN = X.X.X.X,並且我擁有個人存儲中的服務器證書和受信任的根證書頒發機構存儲中的CA證書。
此外,如果我嘗試設置System.Net.ServicePointManager.ServerCertificateValidationCallback來打印診斷並返回true,我會得到一些有趣的行爲。在我的帳戶下運行,回調被調用兩次,然後WCF調用成功。在測試帳戶下運行,它被調用一次,返回,然後我得到上面的異常。
我最好的猜測是,這與測試帳戶缺少的某些特權有關,但我不明白Windows如何處理證書以確保知道,並且我不知道從哪裏開始尋找。
我忘記了將測試用戶更改爲本地管理員後重新登錄。當測試用戶是管理員時,它可以工作;如果沒有,我得到錯誤。編輯的問題。 – laindir