c# - 跟踪 session 和表单例份验证在服务器上的剩余到期时间

标签 c# asp.net session

背景:

回到工作岗位,我正在开发一个 Web 窗体应用程序,该应用程序使用默认的、滑动的 Session 和 FormsAuthentication 超时。我的任务是跟踪用户的不活动情况,并在需要时显示模式窗口,其中包含有关 session 过期的警告、计时器和刷新 session 超时的按钮(它也会刷新表单例份验证超时)。按钮连接到母版页上的事件,主体为空,它现在完成这项工作。 (我知道其他解决方案)。

部分可行的解决方案:

我的方法是使用母版页 Page_PreRender 方法来获取 Session 和 FormsAuthentication 超时值,比较它们并将较小的(或任何)值传递给客户端的浏览器(以及其他必要的数据)。在浏览器中,我会在模态窗口的某个特定时刻用计时器显示警告,它会按预期工作......也就是说......当用户什么都不做时。

问题:

我们的应用程序有很多带有更新面板的页面。这些更新面板用于与 session 中存储的数据进行交互和操作。每当用户在这些更新面板之一中执行某些操作时, session 超时就会滑动(重新启动)。 我无法在客户端(在现实世界中)跟踪那些事情,我需要一种方法来跟踪服务器上的 session 过期时间。

我不想做的事情

我不想遍历每一个页面、每一个 GridView 、每一个图像按钮等,并绑定(bind)一些客户端事件来跟踪用户操作。如果可能,我想要更多...通用且可维护的解决方案。

我的想法:

我希望能够在到期前跟踪/检查 Session 或 FormsAuthentication 剩余时间,或者在这些值已重置时收到通知。这样我就可以在客户端上获得关于我应该显示带有警告的模态窗口的时刻的初始数据,在那个时候,我希望能够首先检查服务器 IF那个时间是正确的(大约),或者我是否应该在客户端更新我的 javascript 数据并延长显示警告窗口之前的时间,因为 session 到期已更新...... 那么拦截和过滤用户请求呢?这会有帮助吗?

最佳答案

您是否考虑过通过 SQL Server 的 session 状态?它允许您通过数据库管理 session ,打开查询您想要的过期信息的选项。看看这个 link .或者这个link .

关于c# - 跟踪 session 和表单例份验证在服务器上的剩余到期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218241/

相关文章:

c# - 为什么 Redis 服务器一直在向日志写入信息,即使没有人使用它?

c# - 使用 EF Core 在另一个实体中创建唯一键的外键

PHP - 检查代码中的 session 最大生命周期

javascript - 使用 AJAX 调用恢复 session

c# - 将用户给定日期(2017 年 1 月或 2 月 1 日)转换为时间戳

c# - 为什么这么慢,.net任务嵌套子任务

asp.net - 如何为数据列表控件放置一个div标签

c# - 找不到类型或命名空间名称 'ObservableCollection'

javascript - 无法根据星期几加载样式表

ruby-on-rails-3 - Ruby on Rails : Session with ActiveResource?