我在向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 回答
如果你有一条通向最终[Authorize]属性的路径,那将导致这一点 - 删除RenderAction或允许在没有[Authorize]的情况下渲染该动作 .
在我的例子中,我在_Layout.cshtml中调用Html.RenderAction(“Heading”)(呈现“请登录”或“欢迎回来,Ryan”) . My Heading actionresult上设置了AuthorizeAttribute . 我删除了 Headers 上的AuthorizeAttribute,它已经解决了 .
我运行的设置和你展示的一样,对我有用 . 检查以确保您的登录操作不需要授权 .
我通过将“匿名身份验证”设置为启用来实现此功能 .
更新:将其设置为匿名验证导致其他问题 . 我需要保持这种禁用 .
有任何想法吗?