[C#/dotnet] 권한 부여 (Authorize)

2024. 11. 22. 17:18·C#
728x90
728x90

참조

  - https://learn.microsoft.com/ko-kr/aspnet/core/security/authorization/simple?view=aspnetcore-8.0

 

 


[Authorize] 어트리뷰트

  - 대상에 대한 액세스를 인증된 사용자만 가능하도록 제한하는 어트리뷰트

  - 인증되지 않은 사용자가 접근하는 경우 → 401 Unauthorized 반환

  - 인증되었지만, 권한이 없는 사용자가 접근하는 경우 → 403 Forbidden 반환

 

# 컨트롤러에 대한 액세스를 인증된 사용자로 제한하기

// AccountController 내부의 Login(), Logout() 둘 다 인증된 사용자만 액세스 가능
[Authorize]
public class AccountController : Controller
{
    public ActionResult Login()
    {
    }

    public ActionResult Logout()
    {
    }
}

# 개별 메서드에 대한 액세스를 인증된 사용자로 제한하기

public class AccountController : Controller
{
    // Login()은 모든 사용자가 액세스 가능
   public ActionResult Login()
   {
   }

    // Logout()은 인증된 사용자만 액세스 가능
   [Authorize]
   public ActionResult Logout()
   {
   }
}

# 대상에 대한 액세스를 특정 역할을 가진 인증된 사용자로 제한하기

// "Admin" 역할을 가진 인증된 사용자만 액세스 가능
[Authorize(Roles = "Admin")]

// "Admin" 또는 "Manager" 역할을 가진 인증된 사용자만 액세스 가능
[Authorize(Roles = "Admin,Manager")]

# 특정 정책에 따라 제한하기

// 정책 정의 (Program.cs)
services.AddAuthorization(options =>
{
    options.AddPolicy("MinimumAge", policy =>
        policy.RequireClaim("Age", "18"));
});

---------

// 해당 정책 내 조건을 만족하는 인증된 사용자만 액세스 가능
[Authorize(Policy = "MinimumAge")]

 


[AllowAnonymous] 어트리뷰트

  - 인증되지 않은 사용자의 액세스를 허용하는 어트리뷰트

  - [Authorize]를 무시함

     : 컨트롤러에 [Authorize], 특정 메서드에 [AllowAnonymous]가 적용되어 있는 경우, 해당 메서드는 모든 사용자가 액세스 가능

[Authorize]
public class AccountController : Controller
{
    // Login()은 모든 사용자가 액세스 가능
    [AllowAnonymous] 
    public ActionResult Login()
    {
    }

    // Logout()은 인증된 사용자만 액세스 가능
    public ActionResult Logout()
    {
    }
}

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

[C#/Dapper] INSERT · UPDATE · DELETE 쿼리 / 프로시저 실행  (1) 2024.11.14
[C#/Dapper] SELECT 쿼리 / 프로시저 실행  (5) 2024.11.13
[C#] 값 형식 (Value types) & 참조 형식 (Reference types)  (0) 2024.10.25
[C#/dotnet] 라우팅 (Routing)  (4) 2024.10.25
[C#/dotnet] 서버 컨트롤  (0) 2024.10.24
'C#' 카테고리의 다른 글
  • [C#/Dapper] INSERT · UPDATE · DELETE 쿼리 / 프로시저 실행
  • [C#/Dapper] SELECT 쿼리 / 프로시저 실행
  • [C#] 값 형식 (Value types) & 참조 형식 (Reference types)
  • [C#/dotnet] 라우팅 (Routing)
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (383)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • etc. (13)
      • Error Note (15)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    http
    java
    HTML
    git
    errorNote
    js
    tailwindcss
    오블완
    typeScript
    SpringBoot
    C#
    개발일지
    티스토리챌린지
    Codeigniter
    Swing
    SQL
    php
    jsp
    cs
    jQuery
    Hotkeys
    vuejs
    Android
    면접
    CSS
    Wordpress
    SEO
    zapier
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[C#/dotnet] 권한 부여 (Authorize)
상단으로

티스토리툴바