C# WebApi 传入客户端证书始终为空

标签 c# asp.net c#-4.0 ssl asp.net-web-api

我正在尝试调试传入请求从未附加客户端证书的问题。

我相当确定请求有一个客户端证书,我有针对两个可能的端点(一个是我们的,一个是第三方服务)运行的测试代码,运行通用代码以将证书附加到请求和SSL 协商适用于第三方服务。

我在使用 IISExpress (VS2010) 以及 IIS 8 时遇到了同样的问题。

证书已在两台机器上安装并受信任。

我已经尝试了这里的步骤:http://www.asp.net/web-api/overview/security/working-with-ssl-in-web-api没有运气。

我已经在自定义 ActionFilter 中尝试了这两种方式来访问证书

var cert = HttpContext.Current.Request.ClientCertificate;

var certificate = actionContext.Request.GetClientCertificate();

是否可能是 ActionFilter 与 DelegatingHandler 的上下文导致了这个问题?

最佳答案

您的客户端代码是什么样的?您是否将客户端证书附加到您的 WebRequestHandler

使用 ActionFilter 还是 DelegatingHanlder 并不重要,但我建议使用 DelegatingHandler,因为它发生在 Controller 上下文创建之前并且性能更高(会更早地拒绝未经授权的请求).

关于C# WebApi 传入客户端证书始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23064439/

相关文章:

c# - Entity Framework 查询,如何选择多于1个表?

c# - 我是否需要在 OnStop 方法中终止 Windows 服务中的任务?

c# - ASP.NET 4.5 GridView : PostBack of last page

使用jmeter进行asp.net登录测试

c# - 如何访问类库中的 app.config 值?

c# - 如何使用 c# 对 excel 单元格的背景颜色使用无填充?

c# - 支持多线程的异步任务队列

c# - 带有脚本的 HtmlHelper 扩展

C# 现在有 biginteger,但是对任意精度 float 的支持呢

asp.net - 连接更改对代码的影响