gpt4 book ai didi

c# - 从 Web 应用程序向 HttpWebRequest 添加 .pfx 证书失败

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

我已经创建了一个 Asp.net Web 应用程序-C#,我需要在其中发送一个带有 .pfx 证书的 HttpWebRequest。

我已将证书安装到个人证书文件夹(为用户 NETWORK SERVICE 添加了权限)并且能够在 X509Certificate2Collection 中看到它,并且在将证书添加到 HttpWebRequest 时没有问题。

但是它在获取响应时抛出无法连接到服务器错误 (HttpWebResponse)req.GetResponse()

我只在 Web 应用程序中遇到这个问题,当我尝试使用 C# 控制台应用程序时,相同的代码工作正常(得到正确的响应)。

            X509Store oLocalMachineStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
X509Certificate2Collection oCertColl;
X509Certificate oCert = new X509Certificate();
oLocalMachineStore.Open(System.Security.Cryptography.X509Certificates.OpenFlags.ReadOnly);
oCertColl = oLocalMachineStore.Certificates.Find(System.Security.Cryptography.X509Certificates.X509FindType.FindByIssuerName, "mycertificate issuer", false);
oLocalMachineStore.Close();
foreach (X509Certificate oCertFromStore in oCertColl)
{
if (oCertFromStore.Issuer.Contains("mycertificate issuer"))
{
oCert = oCertFromStore;
oCert.Import(@"certlocation\mycertificate.pfx", "pwd", X509KeyStorageFlags.MachineKeySet);
break;
}
}

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("destination URL");
req.ClientCertificates.Add(oCert);

req.UserAgent = "LOL API Client";
req.Accept = "application/json";
req.Method = WebRequestMethods.Http.Get;

string result = null;
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
{
StreamReader reader = new StreamReader(resp.GetResponseStream());
result = reader.ReadToEnd();
}

最佳答案

在为 http 请求添加代理后问题得到解决。

req.Proxy = New Net.WebProxy("ProxyURL", False);

但我仍然不知道,当我在不添加代理的情况下尝试使用来自控制台应用程序的相同代码时它是如何工作的。

如果有人对此有任何想法,请分享。

关于c# - 从 Web 应用程序向 HttpWebRequest 添加 .pfx 证书失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44158618/

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