我可以爲會話設置20分鐘的超時時間,這意味着如果用戶在20分鐘內沒有提出請求,他/她的會話將到期。如何在ASP.NET中實現或配置硬會話過期?
<sessionState timeout="20" />
但我需要的是能夠在一段時間後過期會話,無論用戶仍在發送請求。
例如,4小時後,無論用戶發送了另一個請求,會話都必須終止;這是爲了防止惡意軟件濫用默認的會話行爲...
如何在ASP.NET中配置或實現它?
我希望有一個配置設置,但我找不到一個?
非常感謝
我可以爲會話設置20分鐘的超時時間,這意味着如果用戶在20分鐘內沒有提出請求,他/她的會話將到期。如何在ASP.NET中實現或配置硬會話過期?
<sessionState timeout="20" />
但我需要的是能夠在一段時間後過期會話,無論用戶仍在發送請求。
例如,4小時後,無論用戶發送了另一個請求,會話都必須終止;這是爲了防止惡意軟件濫用默認的會話行爲...
如何在ASP.NET中配置或實現它?
我希望有一個配置設置,但我找不到一個?
非常感謝
這個要求沒有配置設置,因爲它是相當獨特的。
您可以通過在客戶端首次連接時向客戶端發送cookie來實現此目的 - 在每個請求中檢查此cookie,並在4小時後開始拒絕該cookie。您可以將此開始時間存儲在Cookie中或Session
變量中。
由於Oded提到您還應該在會話開始事件的會話中存儲第一次登錄時間。當你在讀會話時檢查時間並使用Session.Clear();
和簡單的方法檢查會話開始時間使用全局屬性訪問它。
public User CurrentUser
{
get
{
User user = (User)Session["CurrentUser"];
if (user.startTime > "4 hours") // you can do it what ever you want.
Session.Clear(); //or .Abandon(); [Check Here][1]
return (User)Session["CurrentUser"]
}
}