将这个判断Session的代码放到 page_load()最上面,我用代码清空Session了,为什么判断不到,还是继续往下执行?
if ( (Session["AgentFlaglog"] == null) )
{
Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");
}清空代码:
Session.Clear();

解决方案 »

  1.   

    Session.Remove("AgentFlaglog");或者晴空全部.
      

  2.   

    Session["AgentFlaglog"].Clear();
    这么写很危险。
    如果Session["AgentFlaglog"]==null 
    执行Session["AgentFlaglog"].Clear();
    就报错了。
      

  3.   

    Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");
    return;
    =========
    要加上return;不然程序还是会执行下去。
      

  4.   

    楼上的说法似乎不对,已经跳转到login了,不会执行了
      

  5.   

    if ( (Session["AgentFlaglog"] == null) )
    {
    Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");
    }
    ……
    ===========
    你说,如果后面继续有语句,不会执行?
    它给的只是一段代码。服务器继续执行,管你什么Response.Write。执行完才输出script。跳转过去也晚了。
      

  6.   

    if ( (Session["AgentFlaglog"] == null) )
    {
    Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");Response.End();
    return;
    }
      

  7.   

    up一下..
    LZ可以打个断点看一下
      

  8.   

    if ( (Session["AgentFlaglog"] == null) )  //已经为null,不需要清空,已清空了.
    {
    }
      

  9.   

    if ( (Session["AgentFlaglog"] == null) )
    {
    Response.Write("<script language=javascript>alert('对不起,您的登录时间已过期,请重新登录!');parent.location.href='../Login.aspx';</script>");Response.End();//  <---------------------------HERE
    return;
    }
    =============
    不能用Response.End();否则缓存里的Response.Write以及准备传到客户机上的数据会全部清空并中止。而且后面的return也失去意义!!
    Response.End()不能用!