我一直试图解决这个问题一周,我尝试了一切让我想到的事情。我正在使用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中点击“注册”链接时,出现此错误
答案 0 :(得分:2)
问题在于_Layout.cshtml文件中的以下操作
<li>@Html.Action("BasicInfo", "Profile")</li>
调用ProfileController操作BasicInfo,并且ProfileController用Authorize
属性修饰,该属性将操作重定向到登录。相当愚蠢和误导性的错误......一旦我检查用户是否在此操作之前进行了身份验证一切正常
答案 1 :(得分:1)
这是在IIS上托管吗?您是否检查过该级别的身份验证类型?如果您在Visual Studio中托管它,请确保您已经选中了“允许匿名”#39;身份验证和Windows身份验证&#39;在项目层面设置。
答案 2 :(得分:0)
您可以尝试检查数据库连接字符串吗?
我假设问题可能在于InitializeSimpleMembership Attribute,它试图找到与SQL Server的有效连接,但似乎找不到它。