Mvc 授权属性不起作用

Mvc Authorize attribute is not working

我已经创建了用 AuthorizeAttribute 装饰的 HomeController,也创建了 AccountController,但它没有重定向到 AccountControllerLogin() 操作。

家庭控制器:

[Authorize]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

账户管理员:

public class AccountController : Controller
{
    [HttpGet]
    public ActionResult Login()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Login(LogOnCustom log)
    {
        if(ModelState.IsValid)
        {
            if(Membership.ValidateUser(log.UserName,log.Password))
            {
                FormsAuthentication.RedirectFromLoginPage(log.UserName, log.Isremeber);
            }
            else
            {
                ModelState.AddModelError("", "logOn error");
            }
        }
        return View(log);
    }
}

web.config:

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

我刚遇到同样的问题。检查您的 web.config 并查看它是否包含此行:

<system.webServer>
  <modules>
    <remove name="FormsAuthentication" />
  </modules>
</system.webServer>

删除“<remove name="FormsAuthentication" />”行,它应该开始工作了。删除 FormsAuthentication 模块后,没有代码侦听 401 事件,因此它没有机会将用户重定向到登录页面。