我目前正在與由第三方創建的系統集成。該系統要求我使用XML/HTTPS發送請求。第三方寄給我的證書,我安裝了它WebClient + HTTPS問題
我使用下面的代碼:
using (WebClient client = new WebClient())
{
client.Headers.Add(HttpRequestHeader.ContentType, "text/xml");
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
var response = client.UploadData(address, "POST", encoding.GetBytes(msg));
}
此代碼返回以下WebException
:
基礎連接已關閉:無法建立信任關係爲SSL/TLS安全通道。
UPDATE因爲這是我對工作的測試服務器,該證書不被信任和驗證失敗...要在測試/調試環境繞過這一點,創建一個新的ServerCertificateValidationCallback
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(bypassAllCertificateStuff);
這裏是我的 「假」 回調
private static bool bypassAllCertificateStuff(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}
+1與您使用的代碼更新。因爲這個,很好的快速修復。 – 2010-08-31 20:06:37
調試SSL Web服務時,這非常有用,而不是將提琴手CA根註冊到我的開發機器中!我只是在添加虛擬回調的部分放置了一個#if DEBUG,以便不將它放入生產代碼中。 – jishi 2010-11-15 13:02:28
Go [here。](http://forums.asp.net/p/1174025/1972251.aspx) – Lonzo 2009-02-11 11:24:11