证书身份验证失败时的备用身份验证 (IIS、C#、ASP.NET MVC3)



我们的项目(Web 应用程序C# ASP.NET MVC3)托管在IIS 7.5上,我们使用证书身份验证。所以我们有 SSL要求 配置IIS .

现在我们有一个业务任务,允许一些用户使用我们的系统。并且无法为它们提供客户端证书。在这种情况下,我们需要使用一些额外的身份验证模型(基于用户密码或基于ntdomain)。

我不知道如何实现这样的模型:

  1. 用户进入我们的项目网址;
  2. 如果他有有效的客户证书 - 我们让他迭代我们的应用程序;
  3. 如果他没有证书,我们会向他展示一个带有"用户密码"的登录表单;

如果我们使用 SSL 要求的配置IIS用户将无法在没有有效证书的情况下对应用程序进行迭代,对吗?如果配置了 SSL-Accept,如何使用证书IIS进行身份验证?

也许您可以在 IIS 上配置两个站点?一个有SSL,另一个没有SSL?您的 url 将指向启用 SSL 的站点,当没有有效证书的用户到达时,您使用一些备份代码将他发送到 SSL 免费站点?

只是猜测其实...我认为这可能值得一个更深思熟虑的答案......

问题没有我以前想象的那么大。IIS 提供了一个复选框来要求证书,即使组合框(在 Web 应用程序的 SSL 选项中)设置为"接受"而不是"要求"。在这种情况下,IIS 首先尝试获取证书。如果没有证书,它允许用户对应用程序进行迭代。我们可以在该级别进行自定义身份验证。

对于MVC(v.3+),在这种情况下使用IAuthorizationFilter是很好的方法

相关内容

最新更新