我正在使用以下代码来确保所有证书都通过,甚至是无效证书,但我想知道是否有更好的方法,因为这个事件被全局调用,我只希望证书通过某些HTTP调用,而不是异步发生的任何其他HTTP调用。

// This delegate makes sure that non-validating SSL certificates are passed
ServicePointManager.ServerCertificateValidationCallback = delegate(object certsender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
   return true;
};

上面的代码只是忽略证书上任何非验证的示例。我遇到的问题是它是一个全局事件。我无法看到事件正在发生的会话。我可能会有几个http请求通过,我想要求用户针对每个请求采取行动

有帮助吗?

解决方案

certsender 参数怎么样?它是否包含任何合理的内容,以便您可以确定回调发生的连接是什么?我检查了.NET API,但没有说明该参数应该包含什么...

其他提示

嗯,你实际上可以费心去检查一些参数。 ;)例如,如果您有自签名证书,则只允许错误= = SslPolicyErrors.RemoteCertificateChainError 。您还可以检查证书本身上的颁发者,名称等,以获得额外的安全性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top