2014-09-25 83 views
1

當會話超時時,如何設置和重定向的例子很多。但我無法找到這種情況。會話超時時獲取用戶當前頁面

一個典型的情況是,超時控制監視會話超時並顯示一個窗口,警告用戶當有1分鐘左右時。當會話超時時,用戶被重定向到一個頁面(sessionexpired.aspx),該頁面清除會話並顯示通知用戶他們需要再次登錄的信息。

我想在會話實際超時時記錄用戶所在的頁面,並在sessionexpired.aspx頁面後面的代碼中執行此操作。

任何幫助將非常歡迎!

+0

你不能使用Cookies ..? – MethodMan 2014-09-25 21:11:55

+0

在您重定向到會話過期頁面之前,使用當前頁面的URL(可能通過document.URL)向查詢字符串添加ReturnUrl參數。你需要urlencode它,但是你所要做的就是測試Reqeust.QueryString [「ReturnURL」]。應該像從重定向返回到登錄一樣工作。 – 2014-09-25 21:28:44

回答

1

嘗試查看當前Request對象中的Referer。它通常使用這個發現:

Request.UrlReferrer

我希望這有助於。

1

您可以使用這些代碼範例之一來得到當前頁面的用戶是:

// Returns something like "http://www.example.com/myUrl/MyPage.aspx" 
string page = HttpContext.Current.Request.Url.AbsoluteUri; 

// Returns something like "/myUrl/MyPage.aspx" 
string page = HttpContext.Current.Request.Url.AbsolutePath; 

// Returns something like "MyPage.aspx" 
string page = HttpContext.Current.Request.Url.AbsolutePath.Substring(url.LastIndexOf('/') + 1); 

所以,在你的代碼是當你的會話過期,請您退出(可能在你的母版頁)只需添加其中一行即可。

一旦擁有了它,您可以將它作爲查詢字符串參數添加到您的登錄頁面,也可以將其保存在數據庫中。

+0

Querystring參數獲取我的投票。似乎更清潔,然後將其發送到數據庫。 – Jagd 2014-09-25 22:01:49

+0

@賈格德 - 我同意。我不知道他是否需要知道這一點,以便他可以將用戶返回到他們所在的頁面,或者他是否需要它來進行某種統計營銷活動。例如,「研究表明,當他們被自動註銷時,70%的用戶在XYZ頁上。明白了嗎? – Icemanind 2014-09-25 22:10:32

+0

偉大的回答icemanind,但是以前的回覆允許我在SessionExpired頁面中獲取URL,無論它來自何處。感謝您的迴應,我將爲未來的需求記住這一點。 – user1266896 2014-09-26 04:15:48