我目前正在使用ASP.NET 2.0框架的Web应用程序.当用户会话到期时,我需要重定向到某个页面,比如SessionExpired.aspx.项目中有很多页面,因此向网站的每个页面添加代码并不是一个好的解决方案.我有MasterPages,我认为可能有所帮助.
谢谢!
当用户"登录"时,我通常会在主页面上的Page.Header.Controls集合中添加一个HtmlMeta控件.将它设置为Refresh to您的SessionExpired.aspx页面,具有适当的超时长度,你很高兴.
您可以在Session_Start事件中的global.asax中处理此问题.您可以在那里检查请求中的会话cookie.如果会话cookie存在,则会话已过期:
public void Session_OnStart() { if (HttpContext.Current.Request.Cookies.Contains("ASP.NET_SessionId") != null) { HttpContext.Current.Response.Redirect("SessionTimeout.aspx") } }
唉,我还没有找到任何优雅的方法来查找会话cookie的名称.