一尘不染

在ASP.NET Core中访问当前的HttpContext

c#

我需要使用HttpContext静态方法或实用程序服务来访问当前数据。

使用经典的ASP.NET MVC和System.Web,我将只用于HttpContext.Current静态访问上下文。但是如何在ASP.NET
Core中做到这一点?


阅读 399

收藏
2020-05-19

共1个答案

一尘不染

HttpContext.Current在ASP.NET Core中已经不存在了,但是有一个新的
IHttpContextAccessor东西可以注入到您的依赖中并用来检索当前的HttpContext

public class MyComponent : IMyComponent
{
    private readonly IHttpContextAccessor _contextAccessor;

    public MyComponent(IHttpContextAccessor contextAccessor)
    {
        _contextAccessor = contextAccessor;
    }

    public string GetDataFromSession()
    {
        return _contextAccessor.HttpContext.Session.GetString(*KEY*);
    }
}
2020-05-19