.net - 如何评估多个 ServicePointManager.ServerCertificateValidationCallback 方法?

标签 .net x509certificate

下面的代码是如何求值的?

ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificateA;
ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificateB;

给定一个 HttpWebRequest,如果其中一个 Validator 方法返回 true 是否就足够了,还是它们都必须返回 true?即

ValidateRemoteCertificateA && ValidateRemoteCertificateB

ValidateRemoteCertificateA || ValidateRemoteCertificateB

?

干杯, 坦贝格

最佳答案

在所有情况下,它将使用最后添加的委托(delegate)的返回值。

ServerCertificateValidationCallbackmulticast delegate属性(property)。
编写 ServerCertificateValidationCallback += x 会将 x 附加到其调用列表。
多播委托(delegate)的返回值是其列表中最后一个委托(delegate)的返回值。

关于.net - 如何评估多个 ServicePointManager.ServerCertificateValidationCallback 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7559283/

相关文章:

c# - Path.GetTempPath() 返回的路径是否保持不变?

c# - 在 .Net 中使用 JSON

c# - 找不到 namespace 名称 'Control' 的类型(是否缺少 using 指令或程序集引用?)

java - 如何获取服务器证书链然后在 Java 中验证它的有效性和可信性

c# - 使用 BouncyCaSTLe 签署 X509 证书 - 无效的数字签名

objective-c - 将 SecKeyRef 非对称 key 对作为证书保存到磁盘

ssl - docker + SSL + apache2 + x509

azure - 如何保护 Azure 网站和数据部署的安全

c# - LINQ 链接中的 Any() 运算符

c# - 使用 ReactiveUI 与 PasswordBox 进行两种方式绑定(bind)