我要求在对服务的每个请求中添加标头 MyHeader。 MyHeader 是我在用户登录时收到的 jwt。
我试图从 HttpContext.Request.Headers 中读取它。 我正在尝试在我的服务中访问它。我可以在控制器中获得结果,但不能在服务层获得结果。任何人都可以帮助我在服务类中获得相同的信息。
我使用的是 Asp.net 核心
答案 0 :(得分:1)
在启动#ConfigureServices 中:
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
在您的服务类中:
public class YourServiceClass
{
private readonly IHttpContextAccessor _httpContextAccessor;
...
// constructor
public YourServiceClass(IHttpContextAccessor httpContextAccessor, ...)
{
_httpContextAccessor = httpContextAccessor;
...
}
public void YourServiceMethod()
{
var headers = _httpContextAccessor.HttpContext.Request.Headers;
...
}
...