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

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

I have the following:

  • 表单身份验证

  • Asp.net mvc 2

  • Net Framework 4.0

  • 应用程序池是为.Net Framework 4.0设置的,并且处于集成管道模式 .

  • Windows 7.5上的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)

2 years ago

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

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

2 years ago

我运行的设置和你展示的一样,对我有用 . 检查以确保您的登录操作不需要授权 .

2 years ago

我通过将“匿名身份验证”设置为启用来实现此功能 .

更新:将其设置为匿名验证导致其他问题 . 我需要保持这种禁用 .

有任何想法吗?