简单授权

ASP.NET Core 中的简单授权

在 MVC 中的授权控制通过AuthorizeAttribute属性以及其各种参数。 简单地说,应用AuthorizeAttribute到控制器或操作的限制访问权限,到控制器或操作保存到任何经过身份验证的用户属性。

例如,下面的代码限制访问AccountController到任何经过身份验证的用户。

[Authorize]
public class AccountController : Controller
{
    public ActionResult Login()
    {
    }

    public ActionResult Logout()
    {
    }
}

如果你想要对某个操作而不是在控制器应用授权,应用AuthorizeAttribute操作本身的属性:

public class AccountController : Controller
{
   public ActionResult Login()
   {
   }

   [Authorize]
   public ActionResult Logout()
   {
   }
}

现在,只有经过身份验证的用户可以访问Logout函数。

此外可以使用AllowAnonymous属性以允许未经身份验证的用户到单个操作的访问。 例如:

[Authorize]
public class AccountController : Controller
{
    [AllowAnonymous]
    public ActionResult Login()
    {
    }

    public ActionResult Logout()
    {
    }
}

这将允许到只有经过身份验证的用户AccountController,除Login操作,可供每个用户,而不考虑其已经过身份验证或未经身份验证 / 匿名状态。

警告

[AllowAnonymous] 绕过授权的所有语句。 如果你将结合[AllowAnonymous]及任何[Authorize]属性,[Authorize]属性被忽略。 例如,如果将应用[AllowAnonymous]在控制器级别中,任何[Authorize]忽略属性在同一个控制器上 (或中它的任何操作)。

目录