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

.net 如何评估多个ServicePointManager.ServerCertificateValidationCallback方法?,.net,x509certificate,.net,X509certificate,下面的代码是如何计算的 ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificateA; ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificateB; 给定一个HttpWebRequest,如果其中一个验证器方法返回true就足够了,还是它们都必须返回true?i、 e Val

下面的代码是如何计算的

ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificateA;
ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificateB;
给定一个HttpWebRequest,如果其中一个验证器方法返回true就足够了,还是它们都必须返回true?i、 e

ValidateRemoteCertificateA && ValidateRemoteCertificateB

?

干杯,
tamberg

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

ServerCertificateValidationCallback
是一个属性。
写入
ServerCertificateValidationCallback+=x
x
附加到其调用列表中。

多播委托的返回值是其列表中最后一个委托的返回值。

非常感谢您的直截了当的解释。这似乎是一个相当奇怪的设计,因为多个HttpWebRequests可能来自不同的模块,而这些模块可能彼此都不知道。是的@SLaks-关于如何将其作为本地问题解决,您有什么建议吗?ServerCertificateValidationCallback是我遇到的对这样的证书进行自定义验证的唯一方法,但就我的目的而言,它的范围似乎太广(添加自定义验证以在一个方法中忽略一组非常特定的情况下的ssl错误)。真的谢谢。HttpWebRequest现在已经有了一个成员,但是他们没有向FtpWebRequest添加相同的内容。仍然在寻找更好的方法来解决这个问题。这是一个荒谬的设计,尤其是最后添加的代理总是按自己的方式进行。
ValidateRemoteCertificateA || ValidateRemoteCertificateB