如果ASP.NET MVC中的用户匿名,则重定向到自定义Windows身份验证登录页面

jus*_*tus 8 asp.net-mvc login active-directory windows-authentication

我有一个使用Windows身份验证的ASP.NET MVC Intranet站点.它是使用Windows身份验证从ASP.NET MVC的默认项目设置的.如果用户未经过身份验证/匿名,我一直在努力寻找覆盖默认登录弹出窗口的信息.

默认登录提示:

默认Windows身份验证登录提示

我在互联网上找到的所有东西都有近10年的历史,使用经典的ASP或Web Forms.我找不到的是使用ASP.NET MVC.

我想要做的是,如果用户是匿名/未经过身份验证,则会将用户重定向到"登录"视图.此外,还可以在自动身份验证时注销,并以其他用户身份登录.

我遇到的主要问题是我无法找到在我的项目中进行实际身份验证的位置.我已经检查过App_Start,Global.asax等等.我也找不到如何覆盖它.

我知道我的代码缺乏,但如果有人有一个良好的起点或经验,我会很感激.

Ion*_*anu 4

嗯...不可能使用集成 Windows 身份验证为 IIS 站点实现自定义登录。理由:

  • Windows 身份验证在与表单身份验证不同的 TCP/IP 层上工作(如果我没记错的话,是互联网层与应用程序层)。此外,您还需要考虑不同的 Windows 身份验证类型和版本(带有 NTLM 回退的不同 Kerberos 版本)。
  • Windows 身份验证表单内置于浏览器中
  • IIS 网站不能进行混合身份验证(基于 Windows 和基于表单)

不过,也有解决方法。我可以想到两个,例如:

  1. 实现自定义会员资格提供程序,您可以在需要时使用模拟/委托机制
  2. 使用 ADFS 等实现单点登录架构。