我有一个ASP.NET 2.0 Web应用程序,与多个ASP.NET 2.0 Web服务进行通信。两者都使用ASP.NET会话来持久化会话数据。
为了警告用户应用程序的会话超时,我使用Travis Collins's Timeout Control的修改版本来显示一个标题为“您的会话即将过期”的ModalPopupExtender,并显示“保持登录”和“注销”按钮。点击“保持登录”会回调到一个空方法,该方法重置会话计时器(我认为是因为每个HttpRequest都会调用ResetItemTimeout)。
为了防止服务中的会话在应用程序之前超时,我将它们的超时时间设置得更长,并计划在应用程序中重置会话定时器时调用它们的空方法。但是,没有Session-State Event来重置计时器。
我必须覆盖ResetItemTimeout吗?我该如何做? 还是有其他方法可以实现我的目标(例如,在应用程序服务处于活动状态时保持服务会话处于活动状态)?我正在考虑扩展超时控件以通过应用程序发送心跳(例如Tim Mackey's idea)。
为了警告用户应用程序的会话超时,我使用Travis Collins's Timeout Control的修改版本来显示一个标题为“您的会话即将过期”的ModalPopupExtender,并显示“保持登录”和“注销”按钮。点击“保持登录”会回调到一个空方法,该方法重置会话计时器(我认为是因为每个HttpRequest都会调用ResetItemTimeout)。
为了防止服务中的会话在应用程序之前超时,我将它们的超时时间设置得更长,并计划在应用程序中重置会话定时器时调用它们的空方法。但是,没有Session-State Event来重置计时器。
我必须覆盖ResetItemTimeout吗?我该如何做? 还是有其他方法可以实现我的目标(例如,在应用程序服务处于活动状态时保持服务会话处于活动状态)?我正在考虑扩展超时控件以通过应用程序发送心跳(例如Tim Mackey's idea)。