禁用单个请求的证书验证

时间:2011-10-26 17:16:15

标签: c# certificate smtpclient system.net

在我的应用程序中,我需要向具有自签名证书的服务器发出请求。我希望能够仅针对该特定请求禁用证书验证。

我知道我可以通过将ServicePointManager.ServerCertificateValidationCallback设置为指向回调方法并简单地返回true来禁用证书验证。然而,这会禁用整个应用程序的证书验证,我可以通过在app.config中设置来完成。

但是我不想为整个应用程序禁用,而是禁用单个请求。这可能吗?

我正在使用的课程是SmtpClient

1 个答案:

答案 0 :(得分:0)

禁用证书验证通常是一个坏主意。为什么不直接在系统或应用程序中将自定义证书添加为可信证书。

AFAIR可以这样做,例如通过实施自己的X509CertificateValidator。 只需将自定义证书嵌入到您的应用程序中,并在X509CertificateValidator中进行比较,如果两者相等。

另请参阅:How safe is my custom SSL verification logic to handle excepted RemoteCertificateNameMismatch?