System.Net.CertificatePolicy到ServerCertificateValidationCallback接受所有证书策略

我已经下载了一些有点过时的示例代码。 它有以下几类:

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(); 

它给出了以下警告:

警告1’System.Net.ServicePointManager.CertificatePolicy’已废弃:’CertificatePolicy已针对此类型废弃,请改用ServerCertificateValidationCallback。 http://go.microsoft.com/fwlink/?linkid=14202 ‘

实现等效function的当前程序是什么?

我在MSDN上看过一篇文章 ,但我不确定如何转换? 这是一个类库。 我道歉,如果我似乎没有对此进行过充分的研究,但是当涉及到ssl证书时,它有点超出了我的境界。 任何帮助是极大的赞赏!

在代码中包含以下类

  public static class SSLValidator { private static bool OnValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; } public static void OverrideValidation() { ServicePointManager.ServerCertificateValidationCallback = OnValidateCertificate; ServicePointManager.Expect100Continue = true; } } 

然后在进行服务调用之前调用以下内容,但是当您拥有真正的证书时,请小心在生产中删除此代码

 SSLValidator.OverrideValidation(); 

或者您可以执行以下操作仅将其用于调试

 #if DEBUG SSLValidator.OverrideValidation(); #endif 

连接到其他Web服务时,我使用以下内容。

 //workaround for SSL certificate issue ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; }; 

每个评论我需要添加到模糊 – 在这个生产中不要这样做(如果你这样做 – 发送请发送500美元到我的贝宝手表’ )}K %JwE + \ 53; LRn`’)