背景:
回到工作岗位,我正在开发一个 Web 表单应用程序,该应用程序使用默认的滑动到期 Session 和 FormsAuthentication 超时。我的任务是跟踪用户的不活动状态,并在需要时显示带有会话到期警告的模式窗口、计时器和一个刷新会话超时的按钮(它也会刷新表单身份验证超时)。按钮连接到母版页上的事件,主体为空,它现在可以完成工作。(我知道其他解决方案)。
部分工作解决方案:
我的方法是使用母版页Page_PreRender方法来获取 Session 和 FormsAuthentication 超时值,比较它们并将较小的(或任何)值传递给客户端的浏览器(以及其他必要的数据)。在浏览器中,我会在模态窗口中的某个特定时刻用计时器显示警告,这一切都会按预期工作......也就是说......当用户什么都不做时。
问题:
我们的应用程序有很多带有更新面板的页面。这些更新面板用于与存储在 Session 中的数据进行交互和操作。每当用户在其中一个更新面板中执行某些操作时,会话超时幻灯片(重新启动)。我无法在客户端(在现实世界中)跟踪这些事情,我需要一种方法来跟踪服务器上的会话过期。
我不想做的事情
我不想浏览每一个页面、每一个 gridview、每一个 imagebutton 等并绑定一些客户端事件来跟踪用户操作。如果可能的话,我想要更多……通用且可维护的解决方案。
我的点子:
我希望能够在到期之前跟踪/检查 Session 或 FormsAuthentication 剩余时间,或者在这些值已被重置时得到通知。这样我就可以在客户端上获得有关我应该显示带有警告的模式窗口的时间的初始数据,那时,我希望能够首先与服务器检查是否时间合适(大约)或者如果我应该在客户端更新我的 javascript 数据并延长显示警告窗口的时间,因为会话到期已更新......那么拦截和过滤用户请求呢?那会有帮助吗?