2013-03-05 75 views
0

結束。我也,測試它的每page_load我有,像這樣:如何真正與我使用<code>Session</code>讓我<code>login</code>會議

if (Session["login"] != null) 
{ 
    LbLogado.Text = ""; 
    LbLogado.Text += "Logado Com: " + Session["login"].ToString(); 
} 
else 
{ 
    Response.Redirect("~/login.aspx"); 
} 

我也有一個按鈕exit,這是事件:

Session.Clear(); 
Response.Redirect("~/Login.aspx"); 

當我點擊退出按鈕,我我想要結束每個session
正在發生的事情是,當我退出,並單擊瀏覽器返回到先前網頁其返回正常頁面,但我想重定向到login.aspx頁面,因爲沒有sessions活躍。
我發現了一些文章像this。但這不是我的觀點。

+4

[Session.Abandon()](http://msdn.microsoft.com/en-us/library/system.web .sessionstate.httpsessionstate.abandon.aspx) – 2013-03-05 13:03:40

+0

你有沒有看着Session.Abandon - http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.abandon.aspx - 因爲你要結束每個會話 - 也背動作並不真的發出/得到,如果你打回並刷新你可能會得到預期的行爲 – kd7 2013-03-05 13:05:06

回答

1

你應該叫:

Session.Abandon(); 

MSDN

一旦Abandon方法被調用時,當前會話不再有效,新的會話可以開始。放棄導致結束事件被提出。下一次請求會引發新的開始事件。

+0

當我點擊回到公關它會加載頁面正常,但如果我嘗試與網頁交互,它會使我退到登錄頁面。當我點擊返回上一頁時,它可能會顯示頁面,它會測試'session'並直接進入login.aspx?或者這是唯一可以完成的方法? – Ghaleon 2013-03-05 13:22:50

+0

驗證'(會話[ 「登錄」]!= NULL){....}否則{的Response.Redirect( 「〜/ login.aspx的」); }'不是那樣做的? – MarcusVinicius 2013-03-05 13:42:11

+0

只有當我嘗試與網頁互動(點擊鏈接)。但是當我點擊回到上一頁時,它不會發生'page_load'事件。但我想這很正常......不是嗎? – Ghaleon 2013-03-05 13:59:34

1
Session.Abandon(); 
Response.Redirect("~/Login.aspx"); 
1

這應該工作你的情況:

Session.Abandon(); 
Response.Redirect("~/Login.aspx"); 
相關問題