我无法访问控制器外部的会话变量,他们建议您添加超过 200 个示例;
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddHttpContextAccessor();
Run Code Online (Sandbox Code Playgroud)
并使用
public class DummyReference
{
private IHttpContextAccessor _httpContextAccessor;
public DummyReference(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void DoSomething()
{
// access _httpcontextaccessor to reach sessions variables
}
}
Run Code Online (Sandbox Code Playgroud)
但是,没有人提到如何从我的控制器调用此类。我怎样才能到达那个班级?
如果将其更改为静态,那么我需要绕过构造。如果我创建它,我需要 httpcontextaccessor 来构造。
对于想要了解更多为什么我这样做的人,我想编写包含加密、解密数据库表 RowID 之类的方法的类,以便使用 value+sessionvariable 在 VIEW 中进行屏蔽,以确保其不被修改。
另外,我希望 DummyReference 是静态的,这样我可以轻松访问 DummyReference.EncryptValue 或 DecryptValue。