我試圖訪問一個API,他們讓我通過mmc安裝本地證書我已經在我的本地Windows 7機器上這樣做了,所以我可以測試出該服務。我正在使用一個簡單的Winforms應用程序來測試。我假設這是一個自簽名的證書服務器端,所以我希望繞開開發的異常。SSL HttpWebRequest問題
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(postData);
req.Method = "POST";
req.ContentType = "application/x-www-form-uriencoded";
req.KeepAlive = true;
req.AllowAutoRedirect = false;
X509Store store = new X509Store(StoreName.Root,StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate cert = new X509Certificate();
for (int i = 0; i < store.Certificates.Count; i++)
{
if (store.Certificates[i].SerialNumber == "XXXX")
{
cert = store.Certificates[i];
}
}
req.ClientCertificates.Add(cert);
req.PreAuthenticate = true;
try
{
using (WebResponse resp = req.GetResponse())
{
Stream responseStream = resp.GetResponseStream();
using (StreamReader responseStreamReader = new
StreamReader(responseStream, new ASCIIEncoding()))
{
respString = responseStreamReader.ReadToEnd();
}
}
}
catch (Exception ex)
{
// there is a problem
}
我得到的嘗試捕捉以下異常: 基礎連接已關閉:無法建立信任關係爲SSL/TLS安全通道。
- 我有在變量「證書」
- 一個證書對象當我去到我的瀏覽器的API網址我得到的警告的警告,但隨後可以繼續和獲取數據。
我已經嘗試了其他修補程序建議在stackoverflow如抑制異常。
ServicePointManager.ServerCertificateValidationCallback =新
RemoteCertificateValidationCallback ( 代表{返回true;} );
我知道有不少的這些問題與此類似,並相信我,我已經通過他們都看過。感謝您的任何建議,他們表示讚賞。