解释 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 应用程序中的中间件管道。中间件是一系列处理传入请求并执行各种操作(例如身份验证、缓存、日志记录等)的组件。

更新于:2021年6月22日

7K+ 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.