在MVC 4网站上删除表单身份验证

时间:2013-12-18 16:30:43

标签: asp.net-mvc-4 iis forms-authentication windows-authentication

背景

我创建了一个MVC 4,.Net 4.5网站,以便使用Forms身份验证,因此选择了该模板。然后更改了摘要,我需要交换使用Windows身份验证。这将推出到带有IIS8的Windows Server 2008盒子上。

问题

我不能为我的生活转身关闭表格认证。通过NTLM成功通过身份验证后,MVC会尝试将我带到表单登录页面。我试过了:

  • 将web.config更改为<authentication mode="Windows" >
  • 更改IIS应用程序以使用“Windows身份验证”与“表单身份验证”相反(匿名身份验证当然是关闭的)
  • 我尝试在AuthConfig.RegisterAuth();
  • 中评论“FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);”和“Application_Start()
  • 我尝试在HttpResponse.SuppressFormsAuthenticationRedirect
  • 中设置Application_EndRequest.

这些都不起作用。唯一可怕的软糖(来自同一个stackoverflow帖子)是改变web.config中的下面 - 这有一些时髦的副作用(例如,应用程序不应该在导航时弹回Home):< / p>

<authentication mode="Windows" >
  <!--<forms loginUrl="~/Account/Login" timeout="2880" />-->
  <forms loginUrl="~/Home" timeout="2880" />
</authentication>

问题

我觉得我错过了一些非常明显的(可能是与过滤器相关的)更改,我需要进行更改以禁用和从项目中删除表单auth。任何人都可以建议我需要采取永久删除的步骤吗?

1 个答案:

答案 0 :(得分:6)

ASP.NET MVC3 and Windows Auth on IIS keeps redirecting to /Account/Login

  

检查您是否有WebMatrix.Data.dll和/或WebMatrix.WebData.dll   部署在应用程序的bin目录中。如果他们在那里   (而且你知道你不使用它们)然后尝试删除它们并访问   需要身份验证的页面。

我将项目中的引用删除到WebMatrix,从本地bin和远程bin中删除它们,并且意外行为已停止。