1

我有一个使用普通 FormsAuthentication 登录的 mvc3 网站。该站点现在应该启用 SSL,并且我还被要求添加使用电子身份/智能卡登录的选项(我的客户员工都有特定的电子身份卡,称为 SITHS)。

  • 所以我有一个来自 VeriSign 的 SSL 证书(已安装)。
  • 我有一个用于服务器-客户端验证的根“CA”证书(添加到受信任的根)。
  • 我有一张带有与上述根证书相对应的电子身份证书的测试卡。

我已经为membershipProvider 准备好代码,以根据我的用户数据库解析和检查客户端证书,但我对服务器和证书位非常不确定。还应保留普通 FormsAuthentication 的旧功能。

我的想法是使用 VeriSign 证书在整个站点上启用 SSL。然后,不知何故,添加一个要求,例如“LogOnSmartCard.cshtml”以使用“CA”证书。因此,当用户被定向到此页面时,智能卡应用程序将启动并进行身份验证。然后我可以创建正常的登录票并将用户重定向到主页。

如果这似乎是一个不错的想法 - 关于我应该如何在 IIS (v7) 和/或 web.config 中配置它的任何想法?我可以要求特定页面的特定证书吗?

4

1 回答 1

3

由于没有其他输入,我将添加我如何解决它:

  • 在 IIS 中,我将 (SSL) VeriSign 证书绑定到整个站点
  • 我将用于(智能卡)身份验证的 CA 证书导入证书存储
  • 我将 IIS 选项“需要 SSL”添加到智能卡登录的特定视图

只需执行这些步骤,我就有了一个 SSL 加密站点 (https) 和一个视图,就我而言,它需要智能卡登录。

  • 在代码中,我添加了一个 ActionFilter (IAuthorizationFilter),它解释证书并检查有效性(等),然后尝试对数据库中映射的用户执行登录(到证书序列号)
  • 在 global.asax (Application_Start) 中注册了 ActionFilter

这个解决方案,连同普通的 FormsAuthentication,现在可以完美地协同工作。

于 2013-09-02T11:57:50.387 回答