2014-01-15 128 views
0

我試圖訪問一個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;} );

我知道有不少的這些問題與此類似,並相信我,我已經通過他們都看過。感謝您的任何建議,他們表示讚賞。

回答