ASP.NET Core 5.0 에서 HttpContext 를 방문 하 는 방법 절차
3829 단어 ASP.NETCore방문 하 다.HttpContext
Razor Pages 를 통 해 HttpContext 사용 하기
Razor 페이지 PageModel HttpContext 속성 공개:
public class AboutModel : PageModel
{
public string Message { get; set; }
public void OnGet()
{
Message = HttpContext.Request.PathBase;
}
}
Razor 보 기 를 통 해 HttpContext 사용 하기Razor 보 기 는 보기에 있 는 RazorPage.Context 속성 을 통 해 HttpContext 를 직접 공개 합 니 다.다음 예제 에 서 는 인 트 라 넷 애플 리 케 이 션 의 현재 사용자 이름 을 Windows 인증 으로 검색 합 니 다.
@{
var username = Context.User.Identity.Name;
...
}
컨트롤 러 를 통 해 HttpContext 사용 하기컨트롤 러 공개 ControllerBase.HttpContext 속성:
public class HomeController : Controller
{
public IActionResult About()
{
var pathBase = HttpContext.Request.PathBase;
...
return View();
}
}
미들웨어 를 통 해 HttpContext 를 사용 합 니 다.사용자 정의 미들웨어 구성 요 소 를 사용 할 때 HttpContext 는 Invoke 나 InvokeAsync 방법 으로 전 달 됩 니 다.미들웨어 설정 후 접근 할 수 있 습 니 다.
public class MyCustomMiddleware
{
public Task InvokeAsync(HttpContext context)
{
...
}
}
사용자 정의 구성 요 소 를 통 해 HttpContext 사용 하기HttpContext 에 접근 할 다른 프레임 워 크 와 사용자 정의 구성 요소 에 대해 서 는 내 장 된 의존 항목 을 용기 에 주입 하여 의존 항목 을 등록 하 는 것 을 권장 합 니 다.의존 항 주입 용 기 는 임의의 클래스 에 IHttpContextAccessor 를 제공 하여 클래스 가 자신의 구조 함수 에서 의존 항 으로 설명 할 수 있 도록 합 니 다.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddHttpContextAccessor();
services.AddTransient<IUserRepository, UserRepository>();
}
다음 예제 에서:
public class UserRepository : IUserRepository
{
private readonly IHttpContextAccessor _httpContextAccessor;
public UserRepository(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void LogCurrentUser()
{
var username = _httpContextAccessor.HttpContext.User.Identity.Name;
service.LogAccessRequest(username);
}
}
배경 스 레 드 에서 HttpContext 에 접근HttpContext 는 라인 보안 형 이 아 닙 니 다.처리 요청 외 에 HttpContext 의 속성 을 읽 거나 기록 하면 NullReference Exception 이 발생 할 수 있 습 니 다.
HttpContext 데 이 터 를 사용 하여 백그라운드 작업 을 안전하게 수행 하려 면 다음 작업 을 수행 하 십시오.
4.567917.처리 요청 과정 에서 필요 한 데 이 터 를 복사 합 니 다복사 한 데 이 터 를 배경 작업 에 전달 합 니 다안전 하지 않 은 코드 를 피 하려 면 HttpContext 를 배경 작업 을 수행 하 는 방법 에 전달 하지 마 십시오.필요 한 데 이 터 를 전달 하 는 것 입 니 다.다음 예제 에서 SendEmail Core 를 호출 하여 이메일 을 보 내기 시작 합 니 다.HttpContext 대신 correlationId 를 SendEmail Core 에 전달 합 니 다.코드 실행 은 SendEmailCore 가 완 료 될 때 까지 기다 리 지 않 습 니 다.
public class EmailController : Controller
{
public IActionResult SendEmail(string email)
{
var correlationId = HttpContext.Request.Headers["x-correlation-id"].ToString();
_ = SendEmailCore(correlationId);
return View();
}
private async Task SendEmailCore(string correlationId)
{
...
}
}
ASP.NET Core 5.0 에서 HttpContext 를 방문 하 는 방법 과 절차 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 ASP.NET Core 가 HttpContext 를 방문 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
.Net Core Excel 템플릿 읽기 Excel 파일 내보내기텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.