ServerCertificateValidationCallback反转

时间:2016-04-28 10:16:09

标签: c# ssl ssl-certificate

由于一些证书问题,我不得不写

ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true;

在拨打电话后,这是更好的方法吗?或者这是不必要的?

var temp = ServicePointManager.ServerCertificateValidationCallback;
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true;

var r = func(obj);

ServicePointManager.ServerCertificateValidationCallback = temp;

1 个答案:

答案 0 :(得分:1)

整个操作应该包含在try ... finally中,以确保即使异常飞来也能恢复原始值。 +=可以替换为=,除非有些人使用回调进行验证以外的操作(例如日志记录)。

当然,这种方案在同时出现的情况下也是如此。这个东西至少应该被放入一个关键的部分或者是互斥的,所以问题只表现为表现不佳而不是海森堡...