如何从服务层获取HttpContext

How to get HttpContext from service layer

我需要在每个服务请求中添加 header header MyHeader。 MyHeader是我在用户登录时收到的jwt。

我试图从 HttpContext.Request.Headers 读取它。 我正在尝试在我的服务中访问它。我可以在控制器中得到结果,但不能在服务层中得到。任何人都可以帮助我获得相同的服务 class.

我正在使用 Asp.net 内核

在启动#ConfigureServices 中:

services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();

为您服务class:

public class YourServiceClass
{
    private readonly IHttpContextAccessor _httpContextAccessor;
    ...

    // constructor
    public YourServiceClass(IHttpContextAccessor httpContextAccessor, ...)
    {
      _httpContextAccessor = httpContextAccessor;
      ...
    }

    public void YourServiceMethod() 
    {
      var headers = _httpContextAccessor.HttpContext.Request.Headers;
      ...
    }

    ...