클리엘
CLIEL LAB
클리엘
전체 방문자
131,483
오늘
133
어제
331
  • 분류 전체보기 (442) N
    • Mobile (47)
      • Kotlin (47)
    • Web (84)
      • NestJS (9)
      • HTML5 & CSS3 (38)
      • Javascript (20)
      • TypeScript (6)
      • JQuery (11)
    • .NET (233) N
      • C# (57) N
      • ASP.NET Core (31)
      • Windows API for .NET (128)
    • Server (50)
      • SQL Server (8)
      • MariaDB (18)
      • Windows Server (5)
      • node.js (19)
    • System (12)
      • 작업LOG (12)
    • Review (11)
    • ETC (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 정리

인기 글

  • [C#] C#과 .NET6 시작하기 - 3.⋯
    2022.06.24
    [C#] C#과 .NET6 시작하기 - 3.⋯
  • [C#] C# 개요 - 3. 기타 Consol⋯
    2022.06.24
    [C#] C# 개요 - 3. 기타 Consol⋯
  • [C#] 인터페이스(Interface)와⋯
    2022.06.24
    [C#] 인터페이스(Interface)와⋯
  • [C#] 예외처리
    2022.06.24
    [C#] 예외처리
  • [C#] C#과 OOP(Object-Oriented⋯
    2022.06.24
    [C#] C#과 OOP(Object-Oriented⋯

태그

  • node.js
  • c#
  • .NET
  • android
  • 메서드
  • JavaScript
  • asp.net core
  • CSS3
  • jQuery
  • Kotlin
  • Windows API
  • TypeScript
  • android studio
  • 변수
  • asp.net core web api
  • CentOS
  • MariaDB
  • EF-Core
  • NestJS
  • HTML5

최근 댓글

  • 흠... CACLS는 더이상 사용하지⋯
    클리엘
  • 안녕하세요! 아래 명령 하고부⋯
    방문자
  • 죄송합니다. 관련글을 작성한지⋯
    클리엘
  • 네 맞습니다. 본문에서는 표기⋯
    클리엘
  • 6000 ms 는 6초아닌가요?
    react

최근 글

  • [C#] LINQ(Language INtegrated⋯
    2022.07.05
    [C#] LINQ(Language INtegrated⋯
  • [C#] LINQ(Language INtegrated⋯
    2022.07.05
  • [C#] LINQ(Language INtegrated⋯
    2022.07.05
    [C#] LINQ(Language INtegrated⋯
  • [.NET] 닷넷 Type 사용하기 - 8⋯
    2022.06.26
    [.NET] 닷넷 Type 사용하기 - 8⋯
  • [.NET] 닷넷 Type 사용하기 - 7⋯
    2022.06.26

티스토리

hELLO · Designed By 정상우.
클리엘

CLIEL LAB

.NET/ASP.NET Core

[ASP.NET Core] HttpContext.User

2022. 2. 10. 15:31
728x90

Controller 라면 User 키워드를 통해서 현재 로그인한 사용자의 정보를 가져올 수 있습니다. 예를 들어 아이디를 검색하려면 다음과 같이 할 수 있습니다.

string user = User?.Claims.Where(a => a.Type == ClaimTypes.NameIdentifier)?.FirstOrDefault()?.Value ?? string.Empty;

Controller가 아닌 Controller에서 참조하는 외부클래스에서 User개체에 직접 접근해야 한다면 HttpContext를 통해야 합니다.

 

이를 위해 Program.cs에서 아래와 같이 AddHttpContextAccessor 서비스를 등록하고

builder.Services.AddHttpContextAccessor();
builder.Services.AddControllers();

User가 필요한 해당 클래스에서는 생성자 주입을 통해 HttpContext 개체를 가져오면 됩니다.

public class MyClass
{

private readonly IHttpContextAccessor _httpContextAccessor;

public MyClass(IHttpContextAccessor httpContextAccessor)
{
    _httpContextAccessor = httpContextAccessor;
}

public string UserID()
{
    return _httpContextAccessor.HttpContext.User?.Claims.Where(a => a.Type == ClaimTypes.NameIdentifier)?.FirstOrDefault()?.Value ?? string.Empty;
}

}

 

728x90
저작자표시비영리변경금지

'.NET > ASP.NET Core' 카테고리의 다른 글

[ASP.NET Core] ASP.NET Core Web API  (0) 2022.03.25
[ASP.NET Core] MVC패턴 웹프로젝트 만들기  (0) 2022.03.04
[ASP.NET Core] HttpContext.User  (0) 2022.02.10
[ASP.NET Core] Razor Page로 웹프로젝트 만들기  (0) 2022.01.24
[ASP.NET Core] Session  (0) 2021.11.14
[ASP.NET Core] Logging  (0) 2021.11.13
    '.NET/ASP.NET Core' 카테고리의 다른 글
    • [ASP.NET Core] ASP.NET Core Web API
    • [ASP.NET Core] MVC패턴 웹프로젝트 만들기
    • [ASP.NET Core] Razor Page로 웹프로젝트 만들기
    • [ASP.NET Core] Session
    asp.net core, Httpcontext, User
    클리엘
    클리엘
    누구냐 넌?
    댓글쓰기
    다음 글
    Visual Studio의 Developer Command Prompt를 Windows Terminal에 추가하기
    이전 글
    [ASP.NET Core] Razor Page로 웹프로젝트 만들기
    • 이전
    • 1
    • ···
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • ···
    • 442
    • 다음

    티스토리툴바