具体来说, session 变量。我的 ASP.NET MVC 项目中有一个 .ashx,它正在提取一些图像数据以显示给用户,并且我需要能够访问存储在 session 中的对象。从 Controller 中,我可以很好地提取对象,但在我的 ashx 页面中,context.Session 为空。有什么想法吗?谢谢!
这是我正在尝试做的一个例子...... context.Session 总是返回null。
private byte[] getIconData(string icon)
{
//returns the icon file
HttpContext context = HttpContext.Current;
byte[] buffer = null;
//get icon data
if ( context.Session["tokens"] != null)
{
//do some stuff to get icon data
}
}
最佳答案
为了节省任何人的挖掘,对于.net core 2.1+:
将以下内容添加到您的 Startup.cs 中的 public void ConfigureServices(...) 中:
services.AddHttpContextAccessor();
通过注入(inject)您的服务/等来使用:
public MyService(IHttpContextAccessor httpContextAccessor) { //... }
感谢:https://adamstorr.azurewebsites.net/blog/are-you-registering-ihttpcontextaccessor-correctly
关于asp.net - 如何在 ASP.NET MVC 中访问 Controller 之外的 HttpContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1918283/