可能重复:
Why HttpContext.Current.Session is null in Global.asax?
我正在开发一个MVC3项目(Razor)
我在一些Controller / Action(每个用户不同)中为我的会话添加了一个变量
我想在Application_AuthenticateRequest
方法(global.asax)中访问此变量。
发生了这个例外:
会话状态在此上下文中不可用。
答案 0 :(得分:0)
首先,请参阅https://stackoverflow.com/a/4185982/717732
重点是Session
不可用,而且在这个时间点根本就不可用:'时间'我的意思是“当这个事件被解雇时”。
阅读生命周期,例如devproconnections.com/article/aspnet2 /
在AcquireRequestState
事件期间,稍后准备了Session对象。这是您可以访问Session状态包并进行调查的第一个“时间”。
答案 1 :(得分:0)
谢谢quetzalcoatl, 这是真的。
try
{
if (Session != null)
{
if (Session["mys"] != null)
{
//Error
string s = HttpContext.Current.Session["mys"].ToString();
}
else
{
Response.Redirect("~/Home/Index");
Response.End();
}
}
}
catch {
Response.Redirect("~/Home/Index");
Response.End();
}