解釋 ASP.NET Core 中 HttpContext 類的作用
HttpContext 封裝了單個 HTTP 請求的所有 HTTP 特定資訊。
當 HTTP 請求到達伺服器時,伺服器會處理該請求並構建一個 HttpContext 物件。此物件表示您的應用程式程式碼可用於建立響應的請求。
由 ASP.NET Core Web 伺服器構建的 HttpContext 物件充當單個請求的容器。它儲存請求和響應資訊,例如請求的屬性、與請求相關的服務以及任何來自請求的資料或錯誤(如果存在)。
ASP.NET Core 應用程式透過 IHttpContextAccessor 介面訪問 HTTPContext。HttpContextAccessor 類實現了它。當您需要在服務中訪問 HttpContext 時,可以使用此類。
訪問 HttpContext 的不同方法
以下是從各種型別的應用程式訪問 HttpContext 的不同方法。
從控制器
public class HomeController : Controller{ public IActionResult About(){ var pathBase = HttpContext.Request.PathBase; ... return View(); } }
從 Razor Pages
public class AboutModel : PageModel{ public string Message { get; set; } public void OnGet(){ Message = HttpContext.Request.PathBase; } }
從 Razor 檢視
@{ var username = Context.User.Identity.Name; ... } From middleware public class MyCustomMiddleware{ public Task InvokeAsync(HttpContext context){ ... } }
HttpContext 上有用的屬性和方法
以下是 HttpContext 物件上一些有用的屬性和方法。
屬性
- Connection:獲取有關此請求的基礎網路連線的資訊。
- Request:獲取此請求的 HttpRequest 物件。
- Response:獲取此請求的 HttpResponse 物件。
- Session:獲取或設定用於管理此請求的使用者會話資料的物件。
方法
- Abort():中止請求的基礎連線。
在 ASP.NET Core 中,Kestrel Web 伺服器接收 HTTP 請求並構建請求的 C# 表示形式,即 HttpContext 物件。但是,Kestrel 本身不會生成響應,而是將 HttpContext 物件轉發到 ASP.NET Core 應用程式中的中介軟體管道。中介軟體是一系列處理傳入請求並執行各種操作(例如身份驗證、快取、日誌記錄等)的元件。
廣告