我有一个使用Windows身份验证的ASP.NET MVC Intranet站点。它是使用Windows身份验证从ASP.NET MVC的默认项目设置的。如果用户未经过身份验证/匿名,我一直在努力寻找覆盖默认登录弹出窗口的信息。
默认登录提示:
我在互联网上找到的所有东西都有近10年的历史,使用的是经典的ASP或Web Forms。我找不到任何东西都在使用ASP.NET MVC。
我想做的是,如果用户是匿名/未经过身份验证,则会将用户重定向到“登录”视图。此外,还可以在自动身份验证时注销,并以其他用户身份登录。
我遇到的主要问题是我无法在项目中找到实际身份验证的位置。我已经检查了{{1}},{{1}}等。我也无法找到如何覆盖它。
我知道我的代码缺乏,但如果有人有一个良好的起点或经验,我会很感激。
答案 0 :(得分:3)
嗯......无法使用集成Windows身份验证为IIS站点实现自定义登录。原因:
但是,有一些解决方法。我可以想到两个,例如:
答案 1 :(得分:1)
您可以使用自己的自定义登录页面实现表单身份验证。在控制器代码中,您可以通过Windows身份验证机制检查给定的用户名/密码是否正确。
我们在MVC应用程序中使用它,它只适用于Forms身份验证。 您必须自己实施针对AD的身份验证。 验证成功后,您可以设置一个cookie
FormsAuthentication.SetAuthCookie(model.UserId, true);
并在您的网站上对用户进行身份验证。 您需要使用[Authorize]属性来装饰您的控制器。