控制器外部类的Context.Session

Jor*_*lam 4 session asp.net-core

在我正在使用的控制器中,我Context.Session.GetString(*KEY*);
有一个需要从会话中存储的几个值中读取的类

我以前用这个HttpContext.Current.Session[*KEY*].

我试过在Stackoverflow和MSDN中搜索没有运气.

Kév*_*let 10

HttpContext.Current在ASP.NET 5中不再存在,但有一个新的IHttpContextAccessor,你可以注入你的依赖项并用于检索当前HttpContext:https://github.com/aspnet/Hosting/blob/dev/src/Microsoft.AspNet .Hosting.Abstractions/IHttpContextAccessor.cs

public class MyComponent : IMyComponent {
    private readonly IHttpContextAccessor contextAccessor;

    public MyComponent(IHttpContextAccessor contextAccessor) {
        this.contextAccessor = contextAccessor;
    }

    public string GetDataFromSession() {
        return contextAccessor.HttpContext.Session.GetString(*KEY*);
    }
}
Run Code Online (Sandbox Code Playgroud)