Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
会话超时提示asp.net_Asp.net_Timeout - Fatal编程技术网

会话超时提示asp.net

会话超时提示asp.net,asp.net,timeout,Asp.net,Timeout,我正在使用的应用程序正在使用jquery实现一些会话超时提示。有一个计时器可以计数,如果预定义的X分钟后没有用户活动,它会显示用户提示 (您的会话即将结束…继续或注销) 它使用这里找到的方法- 但是,如果用户打开新选项卡,则此操作不起作用: 1) 用户登录后,计时器开始计算用户不活动的次数 2) 用户单击在新窗口中打开的某个链接(例如,在我们的示例中,它是一个长报告运行)。第二个选项卡处于活动状态,有一些响应(不结束会话的交叉回传/回发) 3) 第二个浏览器选项卡处于活动状态,有一些活动未结束会

我正在使用的应用程序正在使用jquery实现一些会话超时提示。有一个计时器可以计数,如果预定义的X分钟后没有用户活动,它会显示用户提示

(您的会话即将结束…继续或注销)

它使用这里找到的方法-

但是,如果用户打开新选项卡,则此操作不起作用:

1) 用户登录后,计时器开始计算用户不活动的次数

2) 用户单击在新窗口中打开的某个链接(例如,在我们的示例中,它是一个长报告运行)。第二个选项卡处于活动状态,有一些响应(不结束会话的交叉回传/回发)

3) 第二个浏览器选项卡处于活动状态,有一些活动未结束会话

4) 但,第一个浏览器选项卡处于非活动状态,计数器“认为”会话应该关闭,它会显示相应的消息,然后注销用户

这不是我们想要的。所以,给定的方法只是一些会话超时修复,但若用户在另一个选项卡中处于活动状态,那个么应用程序无论如何都会注销用户。这不是我们想要的。 我们有一个报告页。它可以在新的选项卡/窗口中打开报告。它可以运行很长时间。报告部分负责一些回调,所以会话不会在此选项卡中结束。但是,它将在第二个选项卡中结束

编辑: 我有以下解决方案:“存储一个Javascript cookie并检查它以确定会话是否已在另一个选项卡中扩展?”。 我仍在努力理解这一点。

你可以用这个概念来节省最后的活动时间

如果您将其保存在其中一个选项卡上,则也可以从其他选项卡访问它

这在所有服务器上都受支持

例如:

检测到活动时,请使用:

localStorage['lastActivity']=新日期()

当您要检查它时:


var lastActityTime=localStorage['lastActivity']

我已经在javascript cookie中尝试过相同的概念。但是这个localstroge也可能以同样的方式工作。