解釋 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 應用程式中的中介軟體管道。中介軟體是一系列處理傳入請求並執行各種操作(例如身份驗證、快取、日誌記錄等)的元件。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP