gpt4 book ai didi

c# - 无法创建 SSL/TLS 安全通道 - 作为 exe 工作但在 asp.net mvc 中不工作

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:18 25 4
gpt4 key购买 nike

我在通过 https 连接到 api 时遇到问题。我写了一个小控制台应用程序:

var handler = new WebRequestHandler();

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);

store.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 mCert in store.Certificates)
{
// add my locale certificate
if (mCert.FriendlyName == "some_identifier_name")
handler.ClientCertificates.Add(mCert);
}

var httpClient = new HttpClient(handler);
var response= httpClient.GetAsync("https://url-to-my.com/api/something").Result;
var result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);

这个小脚本工作正常,我得到了状态码 200 以及来自 api 的 json 数据。如您所见,我在本地计算机上安装了一个证书,我将其添加到代码中。

我在我的网络服务器上尝试了相同的脚本,那里也一切正常!但是,如果我在我的 mvc 应用程序中运行该脚本,我仍然会收到消息“请求已中止:无法创建 SSL/TLS 安全通道”。

同样的代码,以exe运行还是以mvc网站运行,有什么区别?

PS:这段代码不是我问题的答案,我已经试过了:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

最佳答案

解决方案:IIS > Applications Pools > 选择你的Apppool > Advanced Settings > Identity > Change to LocalSystem

似乎您必须为应用程序池提供足够的权限才能从本地计算机读取证书。

关于c# - 无法创建 SSL/TLS 安全通道 - 作为 exe 工作但在 asp.net mvc 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35991901/

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