ASP.NET MVC将具有表单身份验证的应用程序部署到IIS 7.5

时间:2011-11-15 17:48:01

标签: asp.net-mvc iis-7 forms-authentication

我在向IIS 7.5部署具有表单身份验证的Web应用程序时遇到了困难。

我有以下内容:

  • 表单身份验证
  • Asp.net mvc 2
  • Net Framework 4.0
  • 应用程序池是为.Net Framework 4.0设置的,并且处于集成管道模式。
  • Windows Server 2008上的IIS 7.5
  • 身份验证设置是IIS(ASP.NET模拟和表单身份验证设置为ENABLED。其余设置为DISABLED)。在Forms身份验证的设置中,登录URL是正确的。 Cookie设置为(模式:使用设备配置文件,名称:.ASPXAUTH,保护模式:加密和验证,需要SSL:未选中)

Web.Config中:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

在IIS管理器中运行“管理应用程序 - >浏览”时出现以下错误。


HTTP错误401.2 - 未经授权

由于身份验证标头无效,您无权查看此页面。

尝试在本地计算机上运行已部署的应用程序时出现以下错误:


401 - 未经授权:由于凭据无效,访问被拒绝。

您无权使用您提供的凭据查看此目录或页面。

关于出了什么问题的任何想法?它从VS运行时可以找到。

3 个答案:

答案 0 :(得分:1)

如果你有一条通向最终[Authorize]属性的路径,那将导致这种情况 - 删除RenderAction或允许在没有[Authorize]的情况下渲染该动作。

在我的情况下,我在_Layout.cshtml中调用Html.RenderAction(“Heading”)(呈现“请登录”或“欢迎回来,Ryan”)。 My Heading actionresult上设置了AuthorizeAttribute。我删除了标题上的AuthorizeAttribute,它已经解决了。

答案 1 :(得分:0)

我正在运行与您展示的相同的设置,它对我有用。检查以确保您的登录操作不需要授权。

答案 2 :(得分:0)

我通过将“匿名身份验证”设置为启用来实现此目的。

更新:将其设置为匿名身份验证会导致其他问题。我需要保持这种禁用状态。

有什么想法吗?