我使用简单的机制,其中在我的数据库中登录后,插入了带有userId和expiresDate列的新行。一切都会好的,但我怎么知道用户是否离开网站,关闭浏览器等等?
其次,如果他在网站上查看不同的页面,我怎样才能使他的会话更长。我是否应该一直在数据库上进行更新?
什么是常见的aptterns?
这对我来说很流行,因为在liveChat我需要知道哪些用户在线,以便客户可以与他们聊天
答案 0 :(得分:1)
我认为你在寻找的是
if(HttpContext.Current.User.Identity.IsAuthenticated)
答案 1 :(得分:1)
使用SQLServer State服务将Session存储到数据库中,以帮助您获取所有在线用户的详细信息。
答案 2 :(得分:0)
一切都会好的,但我怎么知道用户是否离开网站,关闭浏览器等等?
没有可靠的方法来了解这一点。在一段时间不活动后过期。
其次,如果他在网站上查看不同的页面,我怎样才能使他的会话更长。我是否应该一直在数据库上进行更新?
是。你应该使用standard session library这个,这应该照顾你。
这对我来说很流行,因为在liveChat我需要知道哪些用户在线,以便客户可以与他们聊天
如果您正在实施聊天系统,请使用心跳系统。让客户端每隔一分钟使用JS发送一个“我还活着”的消息。
答案 3 :(得分:0)
正如大卫回答的那样,没有具体方法来确定用户何时离开页面。您需要使用AJAX(在聊天系统中)或其他方法来发送服务器中的用户仍然存在的服务器。当用户没有多少间隔响应时,您认为他离开了您的站点并需要在服务器中进行更新。