2012-02-22 61 views
0

我对我在asp.net虚拟网站,(Default.aspx的和default2.aspx)共2页,在Default.aspx的,我创建像下面会话超时手动

protected void Page_Load(object sender, EventArgs e) 
    { 
     Session["MySession"] = "WELCOME"; 
     Session.Timeout = 1; 
    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     Response.Redirect("default2.aspx"); 
    } 

和默认设置2届。 ASPX

if (Session["MySession"] != null) 
      Response.Write(Session["MySession"]); 
     else 
      Response.Write("Session Timed Out"); 

我想知道的是1分钟后,会议将得到清除,因为我有超时,但一分钟之后,当我点击它重定向我default2.aspx按钮,显示会话值“欢迎”。谁能告诉我怎样特别的时间段后删除会话值

回答

3

在你Default.aspx你要检查,如果它不是一个回否则会议将再次为每个按钮被初始化点击

protected void Page_Load(object sender, EventArgs e) 
    { 
    if(!Page.isPostBack()) 
     { 
      Session["MySession"] = "WELCOME"; 
      Session.Timeout = 1; 
     } 
    } 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("default2.aspx"); 
} 
+0

感谢您回复,实际上,我正在做的是,我打开default.aspx页面,并保持打开1分钟,然后我点击按钮,以便它重定向到default2.aspx,如果我使用上述技术,我的会话将永远不会被设置,因为回发后,default2.aspx将加载,而不是default.aspx – Abbas 2012-02-22 16:55:42

+0

它应该只在Default.aspx第一次加载时设置加载 我已经编辑了我所有代码的答案d – 2012-02-22 16:56:52

+0

hmmm它似乎工作,你能告诉我你的代码和我的区别是什么,你设置Not IsPostback条件,我设置它应该在页面加载时直接运行该代码,所以造成了区别 – Abbas 2012-02-22 17:05:42