C# 如何在ASP.NET Web API内存测试中添加客户端证书?

C# 如何在ASP.NET Web API内存测试中添加客户端证书?,c#,asp.net,http,testing,asp.net-web-api,C#,Asp.net,Http,Testing,Asp.net Web Api,我想使用内存HttpServer测试我的Web API服务 当前设置如下所示: var httpConfig = CreateTestHttpConfiguration(); var server = new HttpServer(httpConfig); var handler = new WebRequestHandler(); var cert = new X509Certificate2("filename", "password"); handler.ClientCerti

我想使用内存
HttpServer
测试我的Web API服务

当前设置如下所示:

 var httpConfig = CreateTestHttpConfiguration();
 var server = new HttpServer(httpConfig);

 var handler = new WebRequestHandler();
 var cert = new X509Certificate2("filename", "password");
 handler.ClientCertificates.Add(cert);
 var client = HttpClientFactory.Create(handler, server);
我可以使用这些
客户端
向服务器发出请求,除了证书没有添加到请求中之外,其他一切都正常

据我所知,这是因为
server
handler
之前执行(我无法重新排列它们,因为它们实现了不同的接口),而且
server
立即响应
handler
甚至没有执行(我使用
HttpClientHandler
子类而不是
handler
测试了这个假设)


因此,我的问题是:如何添加用于内存测试的客户端证书?这种方法可以做到:

        var server = new HttpServer(configuration);
        var invoker = new HttpMessageInvoker(server);
        var certificate = GetCertificate();

        var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/YourPath");
        request.Properties[HttpPropertyKeys.ClientCertificateKey] = certificate;
        var result = await invoker.SendAsync(request, CancellationToken.None);