问题描述:信息页B.aspx是用户登录后才可以查看,但是在登录后,即使关闭页面,然后重新运行vs,那么用户即使没有登录也可以进入B.aspx页面(因为在页面传值的时候传递的用户名是存在的,还是关闭前登录的用户名)
A.aspx相关代码:
public static string username;//用户名变量,页面间传递时用到的
........
protected void ButtonMore4_Click(object sender, ImageClickEventArgs e)
 {
            if (username == null)
            {
                Response.Write("<script language=javascript>alert('登陆后才可查看');location='javascript:history.go(-1)';</script>");
            }
            else
            {
                Response.Redirect("message.aspx?Name="+username);
            }
                
        }    
我知道可能是我用静态变量的原因导致的,因为在关闭程序的时候并没有关闭服务,所以之前的值还存在,但是我应该用什么进行传递啊,如何用session 好像会有时间限制的,不好意思 初次写这个 不太了解,希望大家给予指点   

解决方案 »

  1.   

    既然知道是静态变量的原因,那把static去掉嘛
      

  2.   

    用cookie或session,还有viewstate都可以。
      

  3.   

    我也想用session,但是不知道如何设置session的失效时间,我想让用户关闭网页的时候 session的值就失效,不知道怎么设置啊,谢谢大家先
      

  4.   

    用户关闭网页,再重新请求网页,Session就不是原来那个了。关闭网页就让Session失效没法做,用ajax轮询是可以的,但非常耗资源,不可取。