2012-09-23 94 views
0

我需要關於我的MVC2應用程序會話超時警告的幫助。當用戶處於會話超時的「n」分鐘內時,應該出現彈出窗口。是否有某種方法可以知道這些信息,或者需要進行計算。我有標準的get/post操作,但也有AJAX請求。提前致謝。ASP.NET MVC2實現會話超時警告

回答

1

ASP.NET sessione在向服務器發送最後一次請求後過期n分鐘,因此只需知道n是什麼,將其呈現給頁面,並使用簡單的Javascript計時器在適當時顯示消息,像這樣:

<sctipt type="text/ecmascript"> 
var timeoutMins = <%= Session.Timeout %>; // HttpSessionstate.Timeout is the timeout period in minutes 
setTimeout(informUser, 0.75 * (timeoutMins * 60 * 1000)); 
function informUser() { 
    alert("Your session is expiring shortly"); 
} 
</script> 

0.75 * (timeoutMins * 60 * 1000)部分轉換的超時長度值到毫秒,然後縮放下來給用戶的時間作出反應。您可以通過向服務器發送AJAX請求(使用當前的ASP.NET會話cookie,這很重要)來自動擴展會話。

修改此代碼以使用固定警報期或計算「分鐘數」圖是讀者留下的練習。

+0

這是一個很好的開始,在某些應用程序中可能是合適的,但應該注意的是它不支持滑動過期(http://msdn.microsoft.com/zh-cn/library/system.web。 configuration.formsauthenticationconfiguration.slidingexpiration.aspx),通過AJAX請求更新會話,或打開多個選項卡/窗口的情況。 –