我有以下代码段:
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不发送证书?