Mvc 授权属性不起作用
Mvc Authorize attribute is not working
我已经创建了用 AuthorizeAttribute
装饰的 HomeController
,也创建了 AccountController
,但它没有重定向到 AccountController
的 Login()
操作。
家庭控制器:
[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 事件,因此它没有机会将用户重定向到登录页面。
我已经创建了用 AuthorizeAttribute
装饰的 HomeController
,也创建了 AccountController
,但它没有重定向到 AccountController
的 Login()
操作。
家庭控制器:
[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 事件,因此它没有机会将用户重定向到登录页面。