在 net 4.6 中,在请求级别禁用 httpclient ssl 验证

Disabling httpclient ssl verification, on request level, in net 4.6

有一个 net 4.6.2 项目 (System.Net.Http 4.0)。有一个 httpclient 连接,在禁用 ssl 验证时工作正常,但它是使用 ServicePointManager 完成的。

在找到如何在 4.6 的处理程序/客户端级别禁用此功能时遇到了一些麻烦。

以下作品:

ServicePointManager.ServerCertificateValidationCallback += (sender,certificate,chain,sslPolicyErrors) => true;
var handler = new HttpClientHandler();
var client = new HttpCLient(handler);

但是在查看 msdn documentation 时,httpclienthandler 似乎不支持 4.6 上的 ServerCertificateValidationCallback(或 'dangerous' 选项)(在代码中不可用) ,也不是 ClientCertificates)。

所以问题是如何在 4.6 中的客户端/处理程序/消息级别禁用此功能?

您可以使用 WebRequestHandler and its ServerCertificateValidationCallback 属性.

var handler = new WebRequestHandler()
{
    ServerCertificateValidationCallback = ....
};
var client = new HttpClient(handler);