Asp.Net MVC 中的特定控制器或操作需要启用 SSL 客户端证书
Enabling SSL Client Certificate Required for specific Controller or Action in Asp.Net MVC
是否有任何特定于 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中的方案and/orHttpModule?
我不这么认为。客户端证书在连接协商期间在 IIS 或 HTTP.sys 中处理和映射,这比 MVC 低得多。如果该客户端证书用于与 SSL/TLS 的相互身份验证,则仅需要客户端证书来建立 HTTPS 会话和连接。
这一切都发生在 MVC 或与此相关的任何代码有机会 运行 之前。这发生在 HTTP.sys.
的内核中
是否有任何特定于 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中的方案and/orHttpModule?
我不这么认为。客户端证书在连接协商期间在 IIS 或 HTTP.sys 中处理和映射,这比 MVC 低得多。如果该客户端证书用于与 SSL/TLS 的相互身份验证,则仅需要客户端证书来建立 HTTPS 会话和连接。
这一切都发生在 MVC 或与此相关的任何代码有机会 运行 之前。这发生在 HTTP.sys.
的内核中