2012-10-19 119 views
6

我的要求有点复杂。 用户使用Web浏览器访问数据库时,如果用户关闭活动页面而不是注销会话,则访问数据库 - 该会话需要自动注销。 可以有人指导我如何做到这一点? 我使用jquery - 在母版页中。如果浏览器在asp.net中关闭,则从浏览器注销?

onbeforeunload - 我得到消息离开页面或留在此页面。 即使我登录并查看主页时也会收到此消息。

+0

你使用的是asp.net会员供应商吗? – th1rdey3

+0

您必须放置一些会话超时时间,并且需要检查用户是否在该窗口中处于活动状态。例如,这是他们在gmail(gtalk)中所做的,如果浏览器长时间处于空闲状态,它会自动进入闲置状态。在你的情况下,你必须清除会议,什么网上银行网站 – kbvishnu

+0

@prabhakaran,你有一个解决方案。 ? – kbvishnu

回答

0

你男人关闭浏览器或导航到网站内的不同页面?如果关闭浏览器,则会话将自动消失。

也看看global.asax的sesson_onEnd事件。

+0

不关闭浏览器不会结束会话 – kbvishnu

+0

Http是无状态的,所以你真的不知道浏览器选项卡或窗口是否关闭。您可以减少会话超时,或使用ajax轮询(不是简单的解决方案),使用ajax脚本不断检查更新页面是否存在。 – highwingers

3

这是示例代码

window.onbeforeunload = function() { 
    return 'You want to leave?'; 
};​​ 

看到演示here

我认为它可以发送一个Ajax请求,你可以看到你的服务器用户关闭浏览器的标签。

此外,这是一个名为jquery.idle的jquery插件,用于识别用户是否处于活动状态。

推荐这个Detecting idle time in JavaScript elegantly会给你更多的想法。