#事故现场
在asp.net中想在Global.asax
中的Application_BeginRequest
方法中读取Session,结果Context.Session为null。无法对每个请求进行session校验,代码如下:
protected void Application_BeginRequest(object sender, EventArgs e)
{
string urlstr = Context.Request.Url.ToString();
if (urlstr.IndexOf("/pages/", StringComparison.OrdinalIgnoreCase) > -1)
{
if (Session == null || Session["UserID"] == null || Session["UserID"].ToString() == "")
{
Response.Redirect("login.aspx");
}
}
}
#解决方法
在Global.asax
中使用Application_AcquireRequestState
方法,在这个方法里面,对每个请求进行session校验。
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
string urlstr = Context.Request.Url.ToString();
if (urlstr.IndexOf("/pages/", StringComparison.OrdinalIgnoreCase) > -1)
{
if (Session == null || Session["UserID"] == null || Session["UserID"].ToString() == "")
{
Response.Redirect("login.aspx");
}
}
}