C# 如何从服务层获取HttpContext
我需要在每个服务请求中添加一个头,一个头MyHeader。MyHeader是用户登录时我收到的jwt 我试图从HttpContext.Request.Headers读取它。 我正在尝试在我的服务中访问它。我可以在控制器中得到结果,但不能在服务层上得到。有人能帮我在服务课上得到同样的服务吗 我在Startup#ConfigureServices中使用Asp.net core:C# 如何从服务层获取HttpContext,c#,asp.net,asp.net-core,httprequest,httpcontext,C#,Asp.net,Asp.net Core,Httprequest,Httpcontext,我需要在每个服务请求中添加一个头,一个头MyHeader。MyHeader是用户登录时我收到的jwt 我试图从HttpContext.Request.Headers读取它。 我正在尝试在我的服务中访问它。我可以在控制器中得到结果,但不能在服务层上得到。有人能帮我在服务课上得到同样的服务吗 我在Startup#ConfigureServices中使用Asp.net core: services.TryAddSingleton<IHttpContextAccessor, HttpContext
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
我想从我的应用程序调用另一个服务(axway端点中的Odata服务),用于授权此JWT令牌。在
asp.net core
中,我们有IHttpContextAccessor
来访问HttpContext
(如果可用)。您需要首先在ConfigureServices
中使用services.AddHttpContext()
@KingKing注册它。我的查询是,是否可以访问服务类上的HttpContext而不是控制器中的HttpContext。可以分享一个例子吗
public class YourServiceClass
{
private readonly IHttpContextAccessor _httpContextAccessor;
...
// constructor
public YourServiceClass(IHttpContextAccessor httpContextAccessor, ...)
{
_httpContextAccessor = httpContextAccessor;
...
}
public void YourServiceMethod()
{
var headers = _httpContextAccessor.HttpContext.Request.Headers;
...
}
...