2014-12-01 65 views
0

我設置會話變量在登錄:ASP。 NET Session變量過期快得多

HttpContext.Current.Session["user_key"] = res; //being some string eg: "asd" 
    HttpContext.Current.Session.Timeout = 60; 

以防萬一,我也有

<system.web> 
<sessionState timeout="60"></sessionState> 

然後我需要檢查用戶,並得到一些日期爲他們幾乎每一個頁面每一個的Page_Load上和ID:

if(HttpContext.Current.Session["user_key"]!= null) 
{ 
    sesvar = (string)(context.Session["user_key"]); 
} 
else 
{ 
    HttpContext.Current.Response.Redirect("/login/"); 
} 

這適用於大部分。但絕對不是60分鐘。我會時不時地「踢」(重定向登錄),無法弄清楚原因。

此外,該項目的工作和維護低谷的Dreamweaver。作爲一個網站,它不會以任何方式進行編譯,而是在IIS服務器上運行。

+1

看看:http://www.codeproject.com/Articles/113287/Why-Session-Timeout-is-not-working-for-your-websit – Jamie 2014-12-01 16:20:43

+0

當您的服務器端代碼發生變化,然後會話自動銷燬。 – 2014-12-01 16:24:53

+0

「我會」踢「(重定向到登錄)......」 - 如果您使用表單身份驗證,請注意表單身份驗證Cookie完全獨立於會話Cookie。 – Joe 2014-12-01 16:30:44

回答

0

原來是我們的數據庫中的一個函數,每小時毀掉一個「清理」登錄表的地方,它不應該有。