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

时间:2012-09-17 13:01:00

标签: asp.net-mvc-3 c#-4.0 authentication iis-7.5

我们的项目(网络应用程序C# ASP.NET MVC3)托管在IIS 7.5上,我们使用证书身份验证。所以我们已经配置了SSL-require IIS

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

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

  1. 用户登录我们的项目网址;
  2. 如果他有有效的客户证书 - 我们让他重复我们的申请;
  3. 如果他没有证书,我们会向他出示一个登录表格,其中包含"用户密码";
  4. 如果我们使用SSL所需的已配置IIS用户将无法在没有有效证书的情况下与应用程序进行迭代?如果使用SSL-Accept配置IIS,如何使用证书进行身份验证?

2 个答案:

答案 0 :(得分:0)

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

实际上只是猜测......我认为这可能值得一个更有冥想的答案......

答案 1 :(得分:0)

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

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

相关问题