ASP.NET Core 권한 부여는 [Authorize] 특성 및 다양한 매개 변수를 사용하여 제어됩니다. 가장 기본적인 형식에서는 [Authorize] 특성을 Razor 구성 요소, 컨트롤러, 작업 또는 Razor 페이지에 적용하면 해당 구성 요소에 대한 access 인증된 사용자로 제한됩니다.
이 문서에서는 구성 요소 예제를 사용하고 권한 부여 시나리오에 중점을 둡니다. Pages 및 MVC 지침은 이 문서를 읽은 후 다음 리소스를 참조하세요.
속성
앱에서 구성 요소 파일()의 맨 위에 있는 특성을 지정합니다. 다음 예제에서는 인증된 사용자만 페이지를 access 수 있습니다.
@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
You can only see this if you're signed in.
중요합니다
라우터를 통해 도달한 구성 요소에 만 특성을 사용합니다. 권한 부여는 라우팅의 일부로만 수행되고, 페이지에 렌더링된 자식 구성 요소에 대해서는 수행되지 ‘않습니다’. 페이지 내에서 특정 부분의 표시 권한을 부여하려면 AuthorizeView 구성 요소를 대신 사용합니다. 이 구성 요소는 ASP.NET Core Blazor 인증 및 권한 부여 설명되어 있습니다.
파일()을 사용하여 앱의 모든 구성 요소 또는 폴더의 구성 요소 하위 집합에도 특성을 적용할 수 있습니다. "특성에 대한 지시문과 함께 네임스페이스에 대한 지시문을 추가합니다."
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
이 특성은 역할 기반 또는 정책 기반 권한 부여도 지원합니다. 역할 기반 권한 부여의 경우 매개 변수를 사용합니다. 다음 예제에서 사용자는 Admin 또는 Superuser 역할에 있는 경우에만 페이지를 access 수 있습니다.
@page "/"
@attribute [Authorize(Roles = "Admin, Superuser")]
<p>You can only see this if you're in the 'Admin' or 'Superuser' role.</p>
정책 기반 권한 부여의 경우 매개 변수를 사용합니다. 다음 예제에서 사용자는 Over21 인증 정책 요구 사항을 충족하는 경우에만 페이지를 access 수 있습니다.
@page "/"
@attribute [Authorize(Policy = "Over21")]
<p>You can only see this if you satisfy the 'Over21' policy.</p>
와 중 어느 것도 지정되지 않으면 는 기본 정책을 사용합니다.
- 인증된(로그인) 사용자에게 권한이 부여됩니다.
- 인증되지 않은(로그아웃) 사용자는 권한이 없습니다.
사용자에게 권한이 부여되지 않고 앱이 구성 요소로 권한이 없는 콘텐츠를 사용자 지정하지 않으면 프레임워크에서 다음 대체 메시지를 자동으로 표시합니다.
Not authorized.
Blazor 인증 및 권한 부여에 대한 자세한 내용은 ASP.NET Core Blazor 인증 및 권한 부여 참조하세요.
[AllowAnonymous] 특성을 사용하여 인증되지 않은 사용자가 개별 작업에 access 수 있도록 합니다.
@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]
모든 앱 사용자에 대해 인증을 요구하는 방법에 대한 자세한 내용은 권한 부여로 보호되는 사용자 데이터로 ASP.NET Core 앱 만들기 참조하세요.
추가 리소스
ASP.NET Core