我无法在控制器外访问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
}
}
但是,没有人提到如何从我的控制器调用这个类。我该如何到达那个类?
如果将它改为静态,则需要绕过构造函数。如果我创建它,我需要httpcontextaccessor来构造。
对于想学习更多为什么我这样做的人,我想编写一个包括加密、解密数据库表行ID以在视图中屏蔽值+会话变量的方法的类,以确保其不被修改。
此外,我希望DummyReference是静态的,这样我就可以轻松地达到DummyReference.EncryptValue或DecryptValue。