ServicePointManager.ServerCertificateValidationCallback 的目的是什么?

What is the purpose of ServicePointManager.ServerCertificateValidationCallback?

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

The remote certificate is invalid according to the validation procedure using

我找到了解决这个问题的方法 here,它工作得很好,但不知道它到底做了什么。那么,任何人都可以向我解释以下代码的实际作用吗?为什么代码被称为 hack?

代码:

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

它是您提供给 ServicePointManager 的委托,用于确定证书是否有效。返回 true 表示证书始终有效。

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