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

标签 c# asp.net-core

我需要在静态方法或实用程序服务中访问当前的 HttpContext

对于经典的 ASP.NET MVC 和 System.Web,我只需要使用 HttpContext.Current 来静态访问上下文。但我如何在 ASP.NET Core 中执行此操作?

最佳答案

HttpContext.Current 在 ASP.NET Core 中不再存在,但有一个新的 IHttpContextAccessor您可以注入(inject)依赖项并用于检索当前的 HttpContext:

public class MyComponent : IMyComponent
{
    private readonly IHttpContextAccessor _contextAccessor;

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

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

关于c# - 在 ASP.NET Core 中访问当前的 HttpContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31243068/

相关文章:

c# - .NET DateTime Parse 抛出异常

asp.net-core - 如何使用自定义服务在 ASP.NET Core 3.1 中注册身份验证提供程序?

asp.net-core - 使用 Blazor Asp.Net Core 的 Bootstrap 模态弹出窗口

azure - GraphServiceClient 返回缺少 Azure AD B2C 用户属性的用户对象

c# - XPS转PDF有什么开源工具吗?

c# - 从 ASP.NET Core 1.1 迁移到 2.0。失败并显示 "Failed to initialize CoreCLR, HRESULT: 0x80004005"

C# 独占枚举

c# - LINQ 和 ArrayList 的使用

docker - 我一直在Docker Build上获取错误解析引用

c# - .Net Core 2.0 授权总是返回 401