日期:2014-05-17  浏览次数:20423 次

页面在关闭的时候,修改用户的登陆状态state,怎么实现?
页面在关闭的时候,修改用户的登陆状态state,怎么实现?

------解决方案--------------------
服务器端没有事件,是不知道的。

只能客户端的事件中调用服务器端的函数。。

客户端
< body onbeforeunload="window.open('http://www.website.com/browserclosed.aspx','mywindow','width=1,height=1');">

服务器端:
// page_load

int userId = Convert.ToInt32(request.session("userId"));
ReportBrowserClosed(userId);
// Do what you want in ReportBrowserclosed() method

或者客户端调用服务器端的web service.
------解决方案--------------------
这类问题每天都有人问啊..

简单的就是楼上写的那样,但是浏览器意外关闭以及各种意外情况处理不了

复杂的就是ajax 隔几分钟浏览器和服务器确认一下还在线
------解决方案--------------------
其实完全可以放在gloab.cs中的Session_End()方法里,即当前会话结束的时候触发,而不是每个页面关闭的时候
------解决方案--------------------
3楼的基本就可行了
------解决方案--------------------
探讨

其实完全可以放在gloab.cs中的Session_End()方法里,即当前会话结束的时候触发,而不是每个页面关闭的时候