在Asp.Net MVC中为特定的控制器或操作启用SSL客户端证书要求

7
有没有MVC特定的方法可以要求SSL客户端证书用于特定的操作或控制器,即非常类似于RequireHttps或Authorize的方式,但是针对ClientCerts?
我知道有一个技巧,你可以在站点中创建一个空文件夹,一个与文件夹同名的控制器,然后在web.config中设置规则,但我不想以这种方式做,如果有MVC解决方案,我会选择它。
(web.config技巧示例:)
  <location path="/ClientCert">
    <system.webServer>
      <security>
        <access sslFlags="Ssl,SslRequireCert" />
      </security>
    </system.webServer>
  </location>

我很好奇是否有一种可以封装在ActionFilter和/或HttpModule中的解决方案?

1个回答

3
我不这样认为。客户端证书在连接协商期间由IIS或HTTP.sys处理和映射,比MVC低得多。如果该客户端证书被用于SSL/TLS的相互身份验证,则需要该客户端证书才能建立HTTPS会话和连接。

所有这些都发生在MVC之前,或者说在任何代码有机会运行之前。这在HTTP.sys内核中进行。


我也有这个怀疑,但至少想确认一下是否有其他信息。 - peter3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接