無法為 SSL/TLS 安全通道建立信任關係,忽略憑証檢查的方式

無法為 SSL/TLS 安全通道建立信任關係,忽略憑証檢查的方式

前言

在ASP.NET 2.0 WEB AP中去Call Https的Web Service時,如果會發生「WebException: 基礎連接已關閉: 無法為 SSL/TLS 安全通道建立信任關係。」,問了客戶IT後發現可以忽略憑証的檢查!

實作

用以上的Key Word到網路上找,可以找到一堆的解法! 可以寫在Page或是寫在Global.asax之中! 我選了個最Easy的方式,直接寫在Global.asax之中的Application_Start事件中寫入以下的Code,就可以了!


	void Application_Start(object sender, EventArgs e) 
{
    System.Net.ServicePointManager.ServerCertificateValidationCallback =
new System.Net.Security.RemoteCertificateValidationCallback(
    delegate(object MySender,
        System.Security.Cryptography.X509Certificates.X509Certificate MyCertificate,
        System.Security.Cryptography.X509Certificates.X509Chain MyChain,
        System.Net.Security.SslPolicyErrors MyErrors)
    {
        if (MySender is System.Net.WebRequest)
        {
            //忽略憑証檢查,一律回傳true
          return true;
        }
        return false;
    });
}
以上範例為網路上Copy來,並加以改寫的哦!

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^