2012-08-31 180 views
1

在我的asp.net應用程序中,在用戶重定向到登錄頁面30分鐘後,HTTP會話超時。這裏有一個場景:HTTP會話超時後保留狀態

  1. 一個項目用戶點擊編輯,與URL像這樣:

    http://localhost/app/edit?id=1

  2. 用戶進行網頁上的某些變化來編輯ID = 1項但不會「保存」30分鐘。

  3. 第31分鐘,他點擊保存,他被重定向到登錄頁面,在那裏我有一個返回URL重定向到,如果他輸入正確的憑據。

什麼是保留在用戶離開該頁面的狀態的正確方法是什麼? 我所擁有的只是返回的URL,它的登錄請求如下所示:http://localhost/app/edit

點擊保存會請求POST,但不會在查詢字符串中傳遞任何內容。

我希望能夠重定向到http://localhost/app/edit?id=1

回答

2

除非您專門構建了一個機制來保留以外的狀態ASP.NET會話狀態機制,否則會話在超時時會丟失。理論上,您可以構建一個狀態系統,以每個用戶ID爲基礎存儲選定頁面/輸入的數據中間草稿,其中包含可能以這種方式「孤立」的數據的頁面可能會稍微檢索,但這也需要定期後臺將數據保存回那些被認爲足夠重要的頁面上的數據庫,以保存因超時而丟失的更改。

+0

我也這麼想。對於您所描述的工作來說,這太過於保證您的努力。 –

+1

我認爲大多數網站開發者在類似的情況下都會得出同樣的結論,除非它有一些非常特殊的情況/案例需要額外的工作。與專用桌面類型相比,這是基於瀏覽器的應用程序的一個明顯缺點,不幸的是,用戶並不總能理解這一點。 –

0

當POST發生,你有原來的URL,並與所有的表單值的請求對象。

該請求將被攔截並重定向到登錄屏幕。此時,您需要保存原始網址和請求值,處理登錄信息,然後使用原始值重定向到原始網址。

你的POST請求是什麼樣的?是否有一個對象可以放入臨時存儲器(會話等),還是處理表單集合?