ASP.NET Core의 단순 권한 부여Simple authorization in ASP.NET Core

MVC의 권한 부여는 AuthorizeAttribute 특성과 이 특성의 다양한 매개 변수를 통해서 제어됩니다.Authorization in MVC is controlled through the AuthorizeAttribute attribute and its various parameters. 가장 간단한 방법으로, 컨트롤러나 액션에 AuthorizeAttribute 특성을 적용하면 인증된 사용자만 해당 컨트롤러나 액션에 접근할 수 있게 제한됩니다.At its simplest, applying the AuthorizeAttribute attribute to a controller or action limits access to the controller or action to any authenticated user.

예를 들어 다음 코드는 인증된 사용자만 AccountController에 접근할 수 있게 제한합니다.For example, the following code limits access to the AccountController to any authenticated user.

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

    public ActionResult Logout()
    {
    }
}

컨트롤러가 아닌 액션에 권한 부여를 적용하고 싶다면 AuthorizeAttribute 특성을 액션 자체에 적용합니다.If you want to apply authorization to an action rather than the controller, apply the AuthorizeAttribute attribute to the action itself:

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

   [Authorize]
   public ActionResult Logout()
   {
   }
}

이제 인증된 사용자만 Logout 함수에 접근할 수 있습니다.Now only authenticated users can access the Logout function.

또는 AllowAnonymous 특성을 사용하여 인증되지 않은 사용자가 개별 액션에 접근할 수 있게 허용할 수도 있습니다.You can also use the AllowAnonymous attribute to allow access by non-authenticated users to individual actions. 예:For example:

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

    public ActionResult Logout()
    {
    }
}

이렇게 특성을 적용하면 인증 여부 및 익명 상태와 관계없이 모든 사용자가 접근할 수 있는 Login 액션을 제외하고, AccountController에는 인증된 사용자만 접근할 수 있습니다.This would allow only authenticated users to the AccountController, except for the Login action, which is accessible by everyone, regardless of their authenticated or unauthenticated / anonymous status.

경고

[AllowAnonymous]는 모든 권한 부여 문을 건너뜁니다.[AllowAnonymous] bypasses all authorization statements. [AllowAnonymous][Authorize] 특성을 결합하면 [Authorize] 특성은 무시됩니다.If you combine [AllowAnonymous] and any [Authorize] attribute, the [Authorize] attributes are ignored. 예를 들어 컨트롤러 수준에 [AllowAnonymous]를 적용하면 해당 컨트롤러의 (또는 그 내부의 모든 액션의) [Authorize] 특성은 무시됩니다.For example if you apply [AllowAnonymous] at the controller level, any [Authorize] attributes on the same controller (or on any action within it) is ignored.