gpt4 book ai didi

c# - 如何在自定义验证中调用默认 ServerCertificateValidationCallback?

转载 作者:太空狗 更新时间:2023-10-29 21:01:29 31 4
gpt4 key购买 nike

我想修改 .Net 的默认 ServerCertificateValidationCallback 以验证我公司的某些证书​​为真,但保留其他证书的默认验证。

我似乎无法执行此操作,因为默认的 ServerCertificateValidationCallback 值为 null。

ServicePointManager.ServerCertificateValidationCallback = 
(sender, certificate, chain, sslPolicyErrors) =>
validCertificatesSerialNumbers.Contains(certificate.GetSerialNumberString()) ||
defaultlCallback.Invoke(sender, certificate, chain, sslPolicyErrors) //How do I set defaultCallback?
;

谢谢

最佳答案

根据我在 reference source 中可以说的这是回调发挥作用的地方:

if (ServicePointManager.ServerCertificateValidationCallback != null)
{
useDefault = false;
return ServicePointManager.ServerCertValidationCallback.
Invoke(m_Request,
certificate,
chain,
sslPolicyErrors);
}

if (useDefault)
return sslPolicyErrors == SslPolicyErrors.None;

这意味着验证已经执行,要知道它是否通过,您只需要检查 sslPolicyErrors 参数。你会这样做:

ServicePointManager.ServerCertificateValidationCallback = 
(sender, certificate, chain, sslPolicyErrors) =>
validCertificatesSerialNumbers.Contains(certificate.GetSerialNumberString()) || (sslPolicyErrors == SslPolicyErrors.None);

关于c# - 如何在自定义验证中调用默认 ServerCertificateValidationCallback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28679120/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com