c# - 如何从服务层获取 HttpContext
问题描述
我需要在每个请求的标头中添加一个标头 MyHeader 服务。MyHeader 是我在用户登录时收到的 jwt。
我试图从 HttpContext.Request.Headers 中读取它。我正在尝试在我的服务中访问它。我可以在控制器中得到结果,但不能在服务层上得到结果。谁能帮我在服务课上得到同样的结果。
我正在使用 Asp.net 核心
解决方案
在 Startup#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;
...
}
...
推荐阅读
- platformio - 我可以在工作区中有不同的 Arduino/Wemos 项目吗?
- php - array_sum 返回 0。如何对数组求和?
- wordpress - 计算 WooCommerce 购物车中的自定义分类术语,并将购物车总数乘以数量
- android - 如何使用 Kotlin 将相机临时拍摄的照片移动到 Android 上的 SD 卡
- vue.js - 在惯性vue js中使用旧控制器的值处理新控制器
- javascript - 我想用我的自定义光标开始和结束加入这两条垂直线,这是一条线(水平)
- c# - WPF - 使用 Windows 媒体导入
- dart - 是否可以创建一个返回 bool 计数的方法,该计数 = true?
- javascript - 如果 Vue.js 项目使用单文件组件,是否意味着无法从 CDN 加载 vue 库?
- javascript - 转换嵌套对象数组中的日期字符串(MongoDB)