ServicePointManager.ServerCertificateValidationCallback的目的是什么?

时间:2015-10-30 08:49:53

标签: c# .net email certificate

最近,我在发送电子邮件时遇到了错误:

  

根据使用

的验证程序,远程证书无效

我找到了这个here的解决方案,它可以很好地工作,但不知道它实际上是做什么的。那么,任何人都可以解释下面代码实际上做了什么吗?为什么代码被称为黑客?

代码:

ServicePointManager.ServerCertificateValidationCallback =
delegate(object s, X509Certificate certificate,
         X509Chain chain, SslPolicyErrors sslPolicyErrors)
{ return true; };

1 个答案:

答案 0 :(得分:4)

这是您提供给ServicePointManager的代表,用于确定证书是否有效。返回true会说证书始终有效。

您必须知道这是一个严重的安全风险。任何人都可以自行签发证书并进行中间人攻击。