【问题标题】:Remove forms authentication on an MVC 4 website在 MVC 4 网站上删除表单身份验证
【发布时间】: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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-30
    相关资源
    最近更新 更多