System.Net.CertificatePolicy到ServerCertificateValidationCall

本文关键字:ServerCertificateValidationCall CertificatePolicy Net System | 更新日期: 2023-09-27 18:29:03

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

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'

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

我在MSDN上读过一篇文章,但我不确定如何转换?这是为类库准备的。如果我似乎对此研究得不够,我深表歉意,但当涉及到ssl证书时,这有点超出了我的范围。非常感谢您的帮助!

System.Net.CertificatePolicy到ServerCertificateValidationCall

在代码中包含以下类

 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美元)

相关文章:
  • 没有找到相关文章