session - 在 .net core 中访问 Controller 外部的 Httpcontext

标签 session .net-core httpcontext

我无法访问 Controller 外部的 session 变量,有 200 多个示例建议您添加 ;services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();

services.AddHttpContextAccessor();
并使用
public class DummyReference
{
        private IHttpContextAccessor _httpContextAccessor;
        public DummyReference(IHttpContextAccessor httpContextAccessor)
        {
            _httpContextAccessor = httpContextAccessor;
        }
        public void DoSomething()
        {
            // access _httpcontextaccessor to reach sessions variables
        }
}
但是,没有人提到如何从我的 Controller 调用这个类。我怎样才能达到那个等级?
如果将其更改为静态,那么我需要旁路构造。如果我创建它,我需要 httpcontextaccessor 进行构造。
对于想要了解更多为什么我这样做的人,我想编写类包括加密、解密数据库表 RowID 等方法,以便在 VIEW 中使用 value+sessionvariable 进行屏蔽,以确保其不被修改。
此外,我希望 DummyReference 是静态的,这样我就可以轻松到达 DummyReference.EncryptValue 或 DecryptValue。

最佳答案

请勿使用 IHttpContextAccessor Controller 之外。相反,使用 HttpContextAccessor .
像这样在静态类中;

private static HttpContext _httpContext => new HttpContextAccessor().HttpContext;
或其他任何地方。当然,您仍然需要服务以及我们在 Controller 中所做的事情。

关于session - 在 .net core 中访问 Controller 外部的 Httpcontext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56902394/

相关文章:

nginx - 如何在 nginx 代理后面使用 Unix 域套接字托管 ASP.NET Core 2.0 (Kestrel)?

asp.net-mvc - ASP.NET MVC-生成没有Http/请求上下文的路由

.net-core - NopCommerce 插件内置于自定义插件中

php - $_SESSION 的响应数据?

javascript - 我正在尝试使用数组作为数据库

jquery - 如何使用 jquery 插件将对象保存到 session

c# - 为什么会出现此 "Unable to cast object of type"异常?

c# - 模拟用户代理

c# - HttpContext的线程安全

php - 根据 PHP 字段值显示链接