2012-02-22 60 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