1

我有web應用程序和網頁上的會話超時和用戶交互,這需要重定向到主頁/登錄頁面上的淨asp.net會話超時重定向到主頁

發現

解決方案1)會話檢查應用程序的所有aspx頁面的page_load。 2)在Global.asax中的會話起始碼

public void Session_Start  
{ 
     Response.Redirect("home.aspx"); 
     // or Server.Transfer("home.aspx"); 
} 

我打算第二個選項,讓我知道 1)無論我是在正確的方式或本沒有更好的辦法? 2)在第二個選項是否使用Response.Redirect或Server.Transfer的

-Thanks

回答

2

你爲什麼不使用JavaScript來做到這一點?你可以使用setTimeout方法類似

<script type="text/javascript"> 
setTimeout('window.location = "home.aspx"', 3000); 
</script> 

把上面的js代碼塊到頁標題這3000是你的會話超時。

+0

可以請你讓我知道與第二種解決方案相比的好處(我已經提到)。第二,global.asax文件中只有一行代碼。 – Yogesh 2011-04-09 14:26:03

5

我會去的第一個,做檢查的會議.....

寫在母版頁的OnInit方法下面的代碼會做你的大頭釘容易

/// <summary> 
    /// Check for the session time out 
    /// </summary> 
    /// <param name="e"></param> 
    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     if (Context.Session != null) 
     { 
      //check whether a new session was generated 
      if (Session.IsNewSession) 
      { 
       //check whether a cookies had already been associated with this request 
       HttpCookie sessionCookie = Request.Cookies["ASP.NET_SessionId"]; 
       if (sessionCookie != null) 
       { 
        string sessionValue = sessionCookie.Value; 
        if (!string.IsNullOrEmpty(sessionValue)) 
        { 
         // we have session timeout condition! 
         Response.Redirect("Home.aps"); 
        } 
       } 
      } 
     } 
    } 
相關問題