Ivan's blog

导航

用HttpWebRequest加载证书建立SSL通道时发生异常的解决办法zt

解决之道:

 

 

但是用它列出的代码还是不对,我们改为CheckValidationResult无条件返回true即可。如下所示声明一个TrustAllCertificatePolicy类:

 

 

 

 

 

public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy

 

 

        {

 

 

            public TrustAllCertificatePolicy()

 

 

            {}

 

 

 

 

 

            public bool CheckValidationResult(ServicePoint sp,

 

 

                System.Security.Cryptography.X509Certificates.X509Certificate cert,

 

 

                WebRequest req, int problem)

 

 

            {

 

 

                return true;

 

 

            }

 

 

        }

 

 

然后,在请求之前加上

 

 

System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();

 

 

即可。

 

 

这样,代码就可以顺利和https服务器建立SSL通道了。

 

 

编写者:郑昀@UltraPower

VB.net 版

Imports System.Net
Public Class TrustAllCertificatePolicy
     
Implements System.Net.ICertificatePolicy 
 
            
Public  Sub New()
            
End Sub

 
 
 
            
Public Function CheckValidationResult(ByVal sp As ServicePoint, ByVal cert As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal req As WebRequest, ByVal problem As IntegerAs Boolean Implements ICertificatePolicy.CheckValidationResult 
 
                
Return True
 
            
End Function

            
 
End Class

posted on 2006-06-05 16:16  54Ivan  阅读(881)  评论(0)    收藏  举报