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

Mic*_*Tol 5 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);
Run Code Online (Sandbox Code Playgroud)

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

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

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

X509Certificate2 certificate = request.GetClientCertificate();
Run Code Online (Sandbox Code Playgroud)

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

为什么 SendAsync 不发送证书?