在会话超时时获取用户当前页面

时间:2014-09-25 21:07:41

标签: c# asp.net session-timeout

当会话超时时,有很多关于如何设置和重定向的示例。但是我找不到这种情况。

超时控件监视会话超时的典型情况,并在剩下1分钟时显示一个警告用户的窗口。当会话超时时,用户将被重定向到一个页面(sessionexpired.aspx),该页面清除会话并显示信息,通知用户他们需要再次登录。

我想在会话实际超时时记录用户所在的页面,并在sessionexpired.aspx页面后面的代码中执行此操作。

非常欢迎任何帮助!

2 个答案:

答案 0 :(得分: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);

因此,只要您的代码在会话到期时(可能在您的母版页中)将您注销,只需添加其中一行。

获得后,可以将其作为查询字符串参数添加到登录页面,也可以将其保存在数据库中。

答案 1 :(得分:1)

尝试查看当前Request对象中的Referer。通常使用它来找到它:

  

Request.UrlReferrer

我希望这会有所帮助。