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

Mag*_*air 3 iis forms-authentication windows-authentication asp.net-mvc-4

背景

我创建了一个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.SuppressFormsAuthenticationRedirectApplication_EndRequest.

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

<authentication mode="Windows" >
  <!--<forms loginUrl="~/Account/Login" timeout="2880" />-->
  <forms loginUrl="~/Home" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

这个问题

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

Mag*_*air 6

IIS上的ASP.NET MVC3和Windows Auth会重定向到/ Account/Login

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

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