I can't access Session variables outside controllers, there are over 200 examples where they advise you to add ;
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddHttpContextAccessor();
and use
public class DummyReference
{
private IHttpContextAccessor _httpContextAccessor;
public DummyReference(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void DoSomething()
{
// access _httpcontextaccessor to reach sessions variables
}
}
But, no-one mentions how to call this class from my controller. How can I reach that class?
If changed it to static then I need bypass construct. If I create it I need httpcontextaccessor for construct.
For who wants learn more why I approached like that, I want to write class include methods like encrypt, decrypt database tables RowIDs for masking in VIEW with value+sessionvariable to ensure its not modified.
Also I want DummyReference to be static, that way I can easily reach DummyReference.EncryptValue or DecryptValue.
Don't use IHttpContextAccessor outside of controllers. Instead, use HttpContextAccessor.
Like this in static classes ;
private static HttpContext _httpContext => new HttpContextAccessor().HttpContext;
Or anywhere else. You still need service of course and the thing we do in the controllers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With