ASP.NET MVC:未经身份验证的用户始终重定向到登录页面

时间:2015-05-10 12:20:09

标签: asp.net-mvc asp.net-mvc-4 authentication authorization

我一直试图解决这个问题一周,我尝试了一切让我想到的事情。我正在使用asp.net mvc 4模板创建Web应用程序。问题是我总是被重定向到登录页面,然后我才能在没有先登录的情况下访问任何路由。甚至没有注册新用户,这是荒谬的。我使用简单的成员身份和默认的帐户控制器,我甚至尝试从帐户控制器中删除[授权]属性,但即便如此,我也被重定向到登录页面。 我的帐户控制器如下所示:

[Authorize]
[InitializeSimpleMembership]
public class AccountController : Controller
{
...
    [AllowAnonymous]
    public ActionResult Register()
    {
        return View();
    }

我的网络配置是:

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

在Chrome中点击“注册”链接时,出现此错误 enter image description here

3 个答案:

答案 0 :(得分:2)

问题在于_Layout.cshtml文件中的以下操作

<li>@Html.Action("BasicInfo", "Profile")</li>

调用ProfileController操作BasicInfo,并且ProfileController用Authorize属性修饰,该属性将操作重定向到登录。相当愚蠢和误导性的错误......一旦我检查用户是否在此操作之前进行了身份验证一切正常

答案 1 :(得分:1)

这是在IIS上托管吗?您是否检查过该级别的身份验证类型?如果您在Visual Studio中托管它,请确保您已经选中了“允许匿名”#39;身份验证和Windows身份验证&#39;在项目层面设置。

enter image description here

答案 2 :(得分:0)

您可以尝试检查数据库连接字符串吗?
我假设问题可能在于InitializeSimpleMembership Attribute,它试图找到与SQL Server的有效连接,但似乎找不到它。