Asp.net mvc 4 MVC4SimpleMembership在本地运行良好,但在实时服务器上导致401

Asp.net mvc 4 MVC4SimpleMembership在本地运行良好,但在实时服务器上导致401,asp.net-mvc-4,authentication,iis,simplemembership,Asp.net Mvc 4,Authentication,Iis,Simplemembership,我有一个使用简单成员身份的MVC4应用程序。在本地,在dev box(iisexpress)上,它可以正常工作。如果我尝试访问带有[Authorize]属性的控制器操作,我将返回到web.config中指定的登录页面 <authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication> 在live server上,当我尝试访问

我有一个使用简单成员身份的MVC4应用程序。在本地,在dev box(iisexpress)上,它可以正常工作。如果我尝试访问带有[Authorize]属性的控制器操作,我将返回到web.config中指定的登录页面

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
在live server上,当我尝试访问带有[Authorize]属性的控制器方法时,我确实会被引导到/Account/Login页面,但也会出现以下错误:

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

IIS站点身份验证配置未启用匿名和表单身份验证。应用程序池正在“网络服务”标识下运行,并且“加载用户配置文件”为True,以便使用用于身份验证的IIS本地数据库

你知道我为什么要拿到401吗

更新1


我可以确认我的_布局页面没有从中确定的标记有[Authorize]属性的任何其他控制器调用任何部分。

您可能需要允许访问URL

<location path="Account/Login">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

好的,我把这个右页去掉,发现问题确实是由于登录页面上的部分视图引用,这是原始MVC4 Internet应用程序项目模板留下的

@Html.Action("ExternalLoginsList", new { ReturnUrl = ViewBag.ReturnUrl })
这个局部视图确实利用了我无意中用[Authorize]属性修饰的控制器操作

[Authorize(Users = "support,admin")]
[ChildActionOnly]
public ActionResult ExternalLoginsList(string returnUrl)
    {
        ViewBag.ReturnUrl = returnUrl;
        return PartialView("_ExternalLoginsListPartial", OAuthWebSecurity.RegisteredClientData);
    }

最终的总人为错误:(

是否有多个
登录名
操作?
公共操作结果登录名()
没有字符串?AccountController是否有授权装饰?嗨@christiandev。不,只有一个登录操作。谢谢。嗨@Queti M.Porta。是的,AccountController确实有授权装饰。我尝试过删除它,但我也遇到了同样的问题。非常感谢。你能进行任何操作吗?例如
主页/索引
?是吗这里有一些特别的登录视图,比如某种第三方验证码?谢谢@Queti M.Porta。我现在尝试了几种不同的location属性,但没有任何乐趣。我确实想知道这是否适用于MVC路由,然后发现其中建议:“您不能使用路由或web.config文件来保护您的MVC应用程序(任何版本)。保护MVC应用程序的唯一受支持的方法是应用Authorize属性..”。非常感谢。
[Authorize(Users = "support,admin")]
[ChildActionOnly]
public ActionResult ExternalLoginsList(string returnUrl)
    {
        ViewBag.ReturnUrl = returnUrl;
        return PartialView("_ExternalLoginsListPartial", OAuthWebSecurity.RegisteredClientData);
    }