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