2015-04-23 47 views
-1

我希望如果用戶在1分鐘內沒有訪問站點1分鐘(意味着瀏覽器閒置1分鐘)。當用戶點擊任何鏈接時,他的會話應該過期,他必須再次提供登錄憑證。如果其他頁面閒置1分鐘,則重定向到登錄c#

登錄頁面:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Default3Login : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     Session["id"] = TextBox1.Text; 
     //Session["pass"] = TextBox2.Text; 
     Response.Redirect("Default3Logout.aspx"); 
     Session.RemoveAll(); 

    } 
} 

主頁:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Default3Logout : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Label2.Text = Session["id"].ToString(); 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     //Session.Remove("id"); you wana remove one by one use this. 
     Session.RemoveAll(); 
     Response.Redirect("Default3Login.aspx"); 
    } 
} 
+1

http://csharpdotnetfreak.blogspot.com/2008/11/detecting-session-timeout-and-redirect.html – Partha

+1

您應該使用超時值爲1的'Forms Authentication'。 –

回答

1

表單身份驗證是一個選項。但如果你不使用它(或者即使你正在使用),它可以很容易地通過JavaScript來完成。

您可以將您的用戶重定向到註銷頁面或調用方法,以將他註銷到您將他踢出會話的位置。

另一個好處是,當用戶與頁面進行交互時,您可以平穩地重置瀏覽計時器(查看javascript events)。這是做這件事的可能方向之一。

下面是一些相對碼:

//javascript function 
function logout() 
{ 
    //hit the logout page or method using jQuery/xmlhttp 
    $.post("logout.aspx?action=logout",{},function(data){ 
    location.href="logout.aspx"; 
}); 
} 

在隱藏文件的代碼包含註銷[執行以下操作的代碼

//under pageload of logout.aspx 
if(request.Querystring["action"]!=null) 
{ 
    response.clear(); 
    Session.abondon(); 
    response.write("Success"); 
    response.End(); 
} 

嘗試&乾杯!

相關問題