各位好,我在我的项目中判断Session超时时,使用户跳转到登陆界面,本来这样应该是没有问题了,可是现在有时候这个提示语句虽然有执行到,但是并没有弹出提示窗口和跳转到登陆界面,反而是继续执行当前页面的代码,这样我有用到Session时,就会报错,提示未将对象引用的实例,不知道有没有人遇到过这样的问题,可否提示一下是什么原因,我是将验证方法写在我封装的一个类里,判断超时的代码是
 protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        //验证是否正常登录
        if (this.Context.Session["ITCode"] == null)
        {
            this.Response.Write("<script   language='javascript'>alert('对不起,请重新登陆!');window.top.location.href='../../login.aspx';</script>");   
}
}这样

解决方案 »

  1.   

    跳转页面最好用Response.Redirect(url,true) javascript会有很多问题
      

  2.   

    即使执行到这里,但是你这句话根本没有起作用,ClientScript.RegisterStartupScript(this.GetType(), "", "alert('对不起,请重新登陆')", true);//用这个弹窗吧
    Response.Redirect用这个跳转
      

  3.   

    --!很明显LZ是你的Session存值问题
      

  4.   

    LZ判断的是==null吧null在内存中不占空间
    如果LZ这样实现
    就这样
    当你在存值的时候如果为空就赋 ""
      

  5.   

    不是啊,这些Session值都是用户登陆是保存的数据啊,一开始都有值的
      

  6.   

    应该是Session存值的问题,你试一下清除IE的缓存。
      

  7.   

    Session存值的问题,还有你的Session过期时间设置也可能有问题