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

C# 会话超时时获取用户当前页面,c#,asp.net,session-timeout,C#,Asp.net,Session Timeout,关于会话超时时如何设置和重定向,有很多例子。但是在这种情况下我找不到任何东西 一种典型情况,超时控件监视会话超时,并在剩余1分钟时显示一个窗口警告用户该超时。会话超时时,用户将被重定向到一个页面(sessionexpired.aspx),该页面将清除会话并显示信息,通知用户需要再次登录 我想在会话实际超时时记录用户所在的页面,并在sessionexpired.aspx页面的代码隐藏中这样做 欢迎任何帮助 您可以使用以下代码示例之一获取用户所在的当前页面: // Returns somethin

关于会话超时时如何设置和重定向,有很多例子。但是在这种情况下我找不到任何东西

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

我想在会话实际超时时记录用户所在的页面,并在sessionexpired.aspx页面的代码隐藏中这样做


欢迎任何帮助

您可以使用以下代码示例之一获取用户所在的当前页面:

 // 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);
因此,无论您的代码在会话到期时将您注销到哪里(可能在母版页中),只需添加其中一行即可

一旦有了它,您可以将其作为查询字符串参数添加到登录页面,也可以将其保存在数据库中。

尝试查看来自当前请求对象的。通常使用以下方法找到:

Request.urlReferer


我希望这会有所帮助。

您不能使用Cookies吗?。在重定向到会话过期页面之前,请使用当前页面的URL(可能通过document.URL)向querystring添加ReturnUrl参数。您将需要对其进行URL编码,但接下来您所要做的就是测试Requeust.QueryString[“ReturnURL”]。应该像从重定向返回登录一样工作。Querystring参数获得我的投票。看起来更干净,然后将其发送给DB。@Jagd-我同意。我不知道他是否需要知道这一点,以便他能够将用户返回到他们所在的页面,或者他是否需要它来进行某种统计营销。例如,“研究表明,70%的用户在自动注销时都在XYZ页面”。明白我的意思了吗?很好的回答icemanind,但是前面的回答允许我在SessionExpired页面中获取URL,不管它来自哪里。感谢您的回复,我会记住这一点,以备将来需要。