[C#中带有HttpClient的客户端证书

问题描述 投票:0回答:1

想要将带有客户端证书(.p12或.pfx)的数据从Windows应用程序发送到服务器计算机,在.Net Framework 4.6中开发的Windows应用程序,操作系统是Windows 10。

从带有客户端证书(.p12或.pfx)的邮递员命中时[在设置选项卡中加载->添加客户端证书->放置主机名,选择pfx文件,放置密码],全部正常(客户端证书发送到服务器) ,但从下面的C#代码发出,

X509Certificate2 certificate = new X509Certificate2(certificateFilePath, "password");
WebRequestHandler handler = new WebRequestHandler();
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
handler.ServerCertificateValidationCallback = (a, b, c, d) => { return true; };
handler.ClientCertificates.Add(certificate);


HttpClient request = new HttpClient(handler);
request.DefaultRequestHeaders.Add("User-Agent", UserAgent);
// added other headers and data
var result = request.PostAsync(url, byteContent).Result;
string resultContent = result.Content.ReadAsStringAsync().Result;

还与提琴手交叉检查Postman和c#。

当服务器未收到客户端证书时,它返回403错误。

c# dotnet-httpclient client-certificates x509certificate2
1个回答
0
投票
HttpStatus代码403可能是由于未使用预期的服务器TLS版本调用API而导致的TLS问题引起的。您可以从代码行resultContent
© www.soinside.com 2019 - 2024. All rights reserved.