在会话超时时关闭所有网页

时间:2009-12-18 07:42:32

标签: asp.net webbrowser-control session-timeout

当会话在asp.net应用程序中超时时,我们需要关闭用户已经打开的所有网页。

每个页面都有退出链接。当用户单击该链接时,主页将重定向到该页面。

在这种情况下,还需要关闭其他打开的页面。

我们怎么做?

3 个答案:

答案 0 :(得分:1)

对于所有页面:

  1. AJAX回调服务器以检查Session是否已过期。
  2. 从AJAX解析结果
  3. 如果会话结束,则关闭窗口或重定向到已注销的页面。

答案 1 :(得分:0)

关于第二个想法......我们可以使用@thephpdeveloper所说的内容,特别是当用户正式签出时...(比如点击退出按钮)一旦正式退出后发生...这样的Ajax回调可以是使用,导致会话有效但不会有任何用户...使用此我们可以发信号通知页面并关闭浏览器窗口

答案 2 :(得分:0)

正如Razzie评论的那样,对同一个Web应用程序执行AJAX回调将使会话保持活跃状态​​。使用网络服务也无法解决问题。

此解决方案可避免会话保持活动状态:

  • 将每个会话存储在数据库中。这可以在Session_Start中的Global.asax事件中或登录后完成。
  • Session_End文件的Global.asax事件中或在注销后删除数据库中的超时会话。
  • 定期对不同的网络应用程序进行AJAX回调,例如:在子域上运行的Web,如果会话仍然存在,则检入数据库。

我建议您使用SessionID来识别会话。