将这个判断Session的代码放到 page_load()最上面,我用代码清空Session了,为什么判断不到,还是继续往下执行?
if ( (Session["AgentFlaglog"] == null) )
{
Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");
}清空代码:
Session.Clear();
if ( (Session["AgentFlaglog"] == null) )
{
Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");
}清空代码:
Session.Clear();
这么写很危险。
如果Session["AgentFlaglog"]==null
执行Session["AgentFlaglog"].Clear();
就报错了。
return;
=========
要加上return;不然程序还是会执行下去。
{
Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");
}
……
===========
你说,如果后面继续有语句,不会执行?
它给的只是一段代码。服务器继续执行,管你什么Response.Write。执行完才输出script。跳转过去也晚了。
{
Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");Response.End();
return;
}
LZ可以打个断点看一下
{
}
{
Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");Response.End();// <---------------------------HERE
return;
}
=============
不能用Response.End();否则缓存里的Response.Write以及准备传到客户机上的数据会全部清空并中止。而且后面的return也失去意义!!
Response.End()不能用!