2009-12-10 69 views
0

會話超時的實際時間是19分鐘嗎?<%= Session.Timeout * 19 * 1000%>

<%= Session.Timeout * 19 * 1000 %> 



<script language="javascript" type="text/javascript"> 
    setTimeout('SessionTimeout()', <%= Session.Timeout * 19 * 1000 %>); 
    function SessionTimeout() { 
     alert(<%= "'Session time out!!'" %>); 
     window.location = "Default.aspx" 
    } 
</script> 

回答

0

爲了澄清,這是你想要做什麼:

在JavaScript中,用戶打開第19分鐘後,你想創建一個警告警報是會話超時的用戶,然後將其重定向到Default.aspx頁面。

然後是的,正如其他人所說,下面應該爲你工作:

<script language="javascript" type="text/javascript"> 
    setTimeout('SessionTimeout()', 19 * 60 * 1000); 
    function SessionTimeout() { 
    alert(<%= "'Session time out!!'" %>); 
    window.location = "Default.aspx" 
    } 
</script> 

如果你想要這個被捆綁到ASP.NET會話超時,併爲1分鐘以下,那麼下面應該爲你工作:

<script language="javascript" type="text/javascript"> 
    setTimeout('SessionTimeout()', <%= Session.Timeout -1 %> * 60 * 1000); 
    function SessionTimeout() { 
    alert(<%= "'Session time out!!'" %>); 
    window.location = "Default.aspx" 
    } 
</script> 

不過請注意,通過做這種方式,如果用戶按下「OK」的提示1分鐘之內,他們仍然有一個活躍的會話時,他們打的默認.aspx,因爲請求會發生d在超時窗口內,並將重置時鐘。

1

我不相信Session.Timeout正在設置那裏,只有得到。

2

是不是隻是獲得價值?接着是一些數學。

在Session6Timeout的IIS6下: 允許的最小值爲1分鐘,最大值爲1440分鐘。 默認爲10分鐘

來源:http://msdn.microsoft.com/en-us/library/ms525473.aspx

雖然DOCS說10 - 上測試查看Session.Timeout的輸出上的值返回20.

+0

是'<%='將值寫出 – pjp 2009-12-10 13:01:15

+0

默認會話超時爲20分鐘。 – 2009-12-10 13:02:47

+0

http://msdn.microsoft.com/en-us/library/ms525473.aspx - 我讀了10這是10分鐘的主要原因。然而,我可能是完全錯誤的。 – LiamB 2009-12-10 13:03:36

1

Timeout屬性以分鐘表示,並且由默認等於20,通常在web.config中設置:

<sessionState mode="InProc" cookieless="false" timeout="19" /> 
+0

默認不是10分鐘嗎? - http://msdn.microsoft.com/en-us/library/ms525473.aspx – LiamB 2009-12-10 13:01:08

+0

我創建了一個新的ASP.NET應用程序(.NET 3.5 SP1),並打印了Session.Timeout的值,它的值爲20. – 2009-12-10 13:05:12

+0

Fair玩,有趣的知道這是爲什麼。 – LiamB 2009-12-10 13:06:07

0

不,它需要Session.Timeout(其單位是分鐘),並將其轉換成一個整數,其中每個分鐘單位對應於19000.假設這結束爲一個JavaScript時間增量(以毫秒爲單位),它將超時的每一分鐘映射到19秒。這有點奇怪。

很難說爲什麼代碼會這樣做,沒有上下文。如果意圖輸出代表的時間Session.Timeout不長一個JavaScript毫秒的時間差,就應該象:

var timeout= <%= Session.Timeout*60*1000 %>; 
+0

請參閱編輯的問題 – SmartestVEGA 2009-12-10 13:07:08

+0

是的,我很確定這是一個錯誤。它應該是* 60,而不是* 19。 – bobince 2009-12-10 13:08:30

+0

好..我可以將它設置爲19分鐘嗎? – SmartestVEGA 2009-12-10 13:09:12

0

的Javascript setTimeout發生在毫秒,
所以轉換「查看Session.Timeout」到毫秒=會話.Timeout * 60 * 1000

+0

我想在JavaScript中設置超時19秒是否可以通過編輯此代碼? – SmartestVEGA 2009-12-10 13:18:23

相關問題