如何知道用户是否已登录?

时间:2011-05-12 10:48:04

标签: javascript asp.net

我使用简单的机制,其中在我的数据库中登录后,插入了带有userId和expiresDate列的新行。一切都会好的,但我怎么知道用户是否离开网站,关闭浏览器等等?

其次,如果他在网站上查看不同的页面,我怎样才能使他的会话更长。我是否应该一直在数据库上进行更新?

什么是常见的aptterns?

这对我来说很流行,因为在liveChat我需要知道哪些用户在线,以便客户可以与他们聊天

4 个答案:

答案 0 :(得分:1)

我认为你在寻找的是

if(HttpContext.Current.User.Identity.IsAuthenticated)

答案 1 :(得分:1)

使用SQLServer State服务将Session存储到数据库中,以帮助您获取所有在线用户的详细信息。

答案 2 :(得分:0)

  

一切都会好的,但我怎么知道用户是否离开网站,关闭浏览器等等?

没有可靠的方法来了解这一点。在一段时间不活动后过期。

  

其次,如果他在网站上查看不同的页面,我怎样才能使他的会话更长。我是否应该一直在数据库上进行更新?

是。你应该使用standard session library这个,这应该照顾你。

  

这对我来说很流行,因为在liveChat我需要知道哪些用户在线,以便客户可以与他们聊天

如果您正在实施聊天系统,请使用心跳系统。让客户端每隔一分钟使用JS发送一个“我还活着”的消息。

答案 3 :(得分:0)

正如大卫回答的那样,没有具体方法来确定用户何时离开页面。您需要使用AJAX(在聊天系统中)或其他方法来发送服务器中的用户仍然存在的服务器。当用户没有多少间隔响应时,您认为他离开了您的站点并需要在服务器中进行更新。