翻译如下:
在MVC中授权通过控制AuthorizeAttribute
属性及其各种参数。在最简单的应用AuthorizeAttribute
属性控制器或行动限制访问控制器或操作任何身份验证的用户。
例如,下面的代码限制了对AccountController
任何身份验证的用户。
[Authorize]
public class AccountController : Controller
{
public ActionResult Login()
{
}
public ActionResult Logout()
{
}
}
如果你想给Action授权,而不想在控制器。可以简单地套用一个AuthorizeAttribute
属性在Action上。
public class AccountController : Controller
{
public ActionResult Login()
{
}
[Authorize]
public ActionResult Logout()
{
}
}
现在只有通过身份验证的用户才能访问登出功能。
您也可以使用AllowAnonymousAttribute
属性,允许非认证用户个人操作的访问。 例如:
[Authorize]
public class AccountController : Controller
{
[AllowAnonymous]
public ActionResult Login()
{
}
public ActionResult Logout()
{
}
}
这将只允许通过认证的用户的AccountController
,除了Login的Action
,这是所有人开放,无论他们的身份验证或未经身份验证/匿名状态。
注意:
[AllowAnonymous]
绕过所有授权语句。如果你申请相结合[AllowAnonymous]
和任何[Authorize]
然后属性属性授权总是被忽略。例如,如果你申请[AllowAnonymous]
在控制器级别的任何[Authorize]
属性同一个控制器上,或其中的任何行动都将被忽略。