C#httpClient.SendAsync不发送客户端证书

时间:2015-05-20 07:51:10

标签: c# ssl dotnet-httpclient

我有以下代码段:

var url  ="https://localhost/Sensor/Sensors/Whitelist";
var cerX509 = new X509Certificate2(@"c:\Client.pfx", "PASSWORD");
var messageHandler = new WebRequestHandler();
messageHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
messageHandler.ClientCertificates.Add(cerX509);
var message = new HttpRequestMessage(HttpMethod.Get, url);
var httpClient = new HttpClient(messageHandler);

我想弄清楚为什么当我拨打httpClient.SendAsync(message)并收到401时,我的客户端证书没有被发送到服务器。

当我用httpClient.GetAsync(url)替换呼叫时,正在发送证书。

我可以控制服务器端代码,当我使用httpClient.GetAsync时,我可以使用

检索证书
X509Certificate2 certificate = request.GetClientCertificate();

当我使用httpClient.SendAsync(message)时,方法调用request.GetClientCertificate()将返回null。

为什么SendAsync不发送证书?

0 个答案:

没有答案