我正在尝试设置Asp.NET Identity,它似乎设置正确,但是当我将[Authorize]
属性放在我的BaseController
类上时,我得到一个无限循环重定向到登录页面。有人能帮助我吗?
注意:每个Controller(包括AccountController)都继承自BaseController。另外,我使用的是.NET 4.5和.NET MVC5。
答案 0 :(得分:2)
尝试在登录/注册操作中设置[AllowAnonymous]
attribute,因此您的代码如下所示:
[Authorize]
public class BaseController: Controller
{
...
}
public class AccountController: BaseController
{
[AllowAnonymous]
public ActionResult Login() {
...
}
[AllowAnonymous]
[HttpPost]
public ActionResult Login(LoginModel model, string returnUrl) {
...
}
[AllowAnonymous]
public ActionResult Register() {
...
}
[AllowAnonymous]
[HttpPost]
public ActionResult Register(RegisterModel model) {
...
}
...
}
由于您已将[Authorize]
属性添加到基本控制器,因此每个操作都需要对用户进行身份验证(包括“登录”操作)。但是,为了使用户能够对自己进行身份验证,至少应为匿名用户启用一些操作,如“登录”操作。这就是使用[AllowAnonymous]
属性实现的目标。
希望它有所帮助!