gpt4 book ai didi

c# - 如何使用 ASP.NET Core 验证 Web 请求的 SSL 证书

转载 作者:行者123 更新时间:2023-11-30 21:42:21 24 4
gpt4 key购买 nike

我已经实现了一种使用 APS.NET 核心 (System.Net.HttpWebRequest).

我需要忽略在获取 WebResponse 时发生的证书错误。我引用了很多博客并得到了使用 ServicePointManager 的解决方案并使用了下面的代码

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

但在 ASP.NET Core 中不支持 ServicePointManager。所以请帮助我仅通过 HttpWebRequest 而非 HttpClient 的方式解决此问题。

最佳答案

.NET Core 使 ServerCertificateCustomValidationCallback委托(delegate)可供您覆盖。示例:

var handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback = delegate { return true; };
var http = new HttpClient(handler);
Console.WriteLine(http.GetAsync("https://expired.badssl.com/").GetAwaiter().GetResult());

输出:

StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Server: nginx/1.10.0
Server: (Ubuntu)
Date: Mon, 06 Mar 2017 05:56:52 GMT
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"58924b62-1d5"
Cache-Control: no-store
Content-Type: text/html
Last-Modified: Wed, 01 Feb 2017 20:56:02 GMT
}

在带有 .NET 1.0.0-preview2-1-003177 的 Ubuntu 16.04 上测试。有一个 open issue与此相关,在 MacOS 上同样有效。

关于c# - 如何使用 ASP.NET Core 验证 Web 请求的 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618063/

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