ASP.NET Core 컨트롤러의 생성자 내에서 현재 사용자에 액세스하면 null
의 잠재적 HttpContext
값으로 인해 문제가 발생할 수 있습니다. 이 글은 반복적인 호출 없이 사용자 정보를 효율적으로 검색할 수 있는 효과적인 솔루션을 제공합니다.
HttpContext.User.GetUserId()
을 사용하는 일반적인 접근 방식은 생성자 내에서 실패합니다. 사용자 데이터 검색을 최적화하려면 중앙 집중식 방법이 선호됩니다.
이 문제를 해결하는 방법은 다음과 같습니다.
컨트롤러 작업 내: HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value
를 사용하여 사용자 ID를 얻습니다.
생성자 내(IHttpContextAccessor 활용):
IHttpContextAccessor
을 포함시키고 ConfigureServices
에 등록하세요.IHttpContextAccessor
을 컨트롤러 생성자에 삽입하고 다음과 같이 사용자 ID에 액세스합니다.<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor) { var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; }</code>
잠재적인 null 값을 적절하게 처리하기 위해 null 조건부 연산자(?.
)가 추가되었습니다. 이는 User
또는 FindFirst
가 null을 반환하는 경우 예외를 방지합니다.
위 내용은 ASP.NET Core 컨트롤러 생성자에서 현재 사용자에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!