ASP.NET Core 컨트롤러에서 현재 사용자 검색
ASP.NET Core 컨트롤러 내에서 사용자 정보에 액세스하려면 Null 참조 예외를 방지하기 위해 신중하게 고려해야 합니다. 컨트롤러 생성자에서 HttpContext
을 직접 사용하면 오류가 발생하기 쉽습니다.
액션 메소드 내에서 사용자 데이터 액세스
신뢰할 수 있는 방법은 작업 메서드 내에서 사용자 세부 정보를 검색하여 ViewData
에 저장하는 것입니다. 이 예에서는 요청에 사용자 쿠키가 있다고 가정합니다.
<code class="language-csharp">public ActionResult Index() { string userId = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; ViewData["UserId"] = userId; return View(); }</code>
이후 ViewData["UserId"]
작업과 관련된 모든 보기에서 Index
을 통해 사용자 ID에 액세스합니다. null 조건부 연산자(?.
)는 FindFirst
가 null을 반환하는 경우 예외를 방지합니다.
컨트롤러 생성자 내에서 사용자 데이터에 액세스
생성자 기반 액세스의 경우 IHttpContextAccessor
인터페이스를 활용하세요.
<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor) { string userId = httpContextAccessor.HttpContext?.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; // ... further processing of userId ... }</code>
IHttpContextAccessor
이 서비스 구성에 등록되어 있는지 확인하세요.
<code class="language-csharp">public void ConfigureServices(IServiceCollection services) { services.AddHttpContextAccessor(); }</code>
이러한 기술은 ASP.NET Core의 현재 사용자 데이터에 액세스하기 위한 강력한 방법을 제공하여 런타임 오류 위험을 최소화합니다. null 조건부 연산자를 사용하여 잠재적인 null 값을 적절하게 처리하는 것을 잊지 마세요.
위 내용은 ASP.NET Core 컨트롤러에서 현재 사용자에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!