【发布时间】:2013-12-18 16:30:42
【问题描述】:
背景
为了使用表单身份验证,我创建了一个 MVC 4、.Net 4.5 网站,因此选择了该模板。简介随后发生了变化,我需要改用 Windows 身份验证。这是在带有 IIS8 的 Windows Server 2008 机器上推出的。
问题
我一辈子都无法关闭表单身份验证。成功通过 NTLM 身份验证后,MVC 尝试将我带到表单登录页面。我试过了:
- 将 web.config 更改为
<authentication mode="Windows" > - 将 IIS 应用程序更改为使用“Windows 身份验证”而不是“表单身份验证”(匿名身份验证当然是关闭的)
- 我尝试在
Application_Start()中注释掉“AuthConfig.RegisterAuth();”和“FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);” - 我尝试在
Application_EndRequest.中设置HttpResponse.SuppressFormsAuthenticationRedirect
这些都不起作用。唯一起作用的可怕软糖(来自stackoverflow的同事)是更改web.config中的以下内容-但这有一些时髦的副作用(例如,当应用程序不应该在导航时弹回主页):
<authentication mode="Windows" >
<!--<forms loginUrl="~/Account/Login" timeout="2880" />-->
<forms loginUrl="~/Home" timeout="2880" />
</authentication>
问题
我觉得我遗漏了一些非常明显(可能与过滤器相关)的更改,我需要进行一些更改以从项目中禁用和删除表单身份验证。谁能建议我需要采取哪些步骤才能永久删除?
【问题讨论】:
-
这个问题似乎是题外话,因为它是针对webmasters
-
问题与 MVC 相关。问题的症结与 IIS 或 Web 无关,它与 MVC 相关,并且有大量 Stackoverflow 关注(仅 MVC 4 就有 74k 问题)
-
@RowlandShaw 不,这似乎是一个与身份验证完全相关的 MVC 问题
-
好吧,我会通过进入 IIS 管理控制台并禁用应用程序的表单身份验证来修复它;
-
这是我尝试@RowlandShaw 的第二件事(正如我在上面的“问题”中所写)——IIS 中的设置不是问题。感谢您的关注
标签: asp.net-mvc-4 iis forms-authentication windows-authentication