.NET HttpClient - 有条件地忽略证书错误

时间:2018-05-31 05:40:29

标签: .net http ssl certificate

在我的ASP.NET Web应用程序中,我有时需要通过在地址中指定目标IP而不是域名来向HTTPS端点发出请求。这自然会导致证书错误。我想忽略这些证书问题并继续通过System.Net.Http.HttpClient类进行调用。

我有条件地需要这种行为,具体取决于请求。这就是为什么;

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

对我来说不是一个选择。因为它改变了全球的风尚。

如何指定基于每个请求忽略证书错误?

1 个答案:

答案 0 :(得分:0)

您可以按每个请求进行操作,如下所示:

var handler = new HttpClientHandler();
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.ServerCertificateCustomValidationCallback = 
(httpRequestMessage, cert, cetChain, policyErrors) =>
{
return true;
};

var client = new HttpClient(handler);