我如何知道我的网站的在线用户

时间:2009-02-14 17:34:24

标签: c# asp.net session

我将Session [“UserID”]的值设置为已登录用户的Id,因此我可以知道该用户是谁。但我想知道所有用户都记录了我的页面,并显示了它们的列表。

3 个答案:

答案 0 :(得分:6)

通常,您会问“如何知道最近x分钟内哪些人活跃了。”

在每个页面条目上记录他们的上次活动时间,然后查询该列表以查看过去几分钟内哪些人处于活动状态。您可以扩展它并记录他们访问过的最后一页,了解有多少人在线,以及特定页面上有多少人。

您可以通过向数据库中的用户表添加几个字段来完成此操作。一个用于lastActivityTime,一个用于lastVisitedLocation。

答案 1 :(得分:2)

您登录用户遇到的主要问题是,如果有人关闭浏览器或杀死浏览器或丢失电量,则无法保证数字是准确的,这是您知道他们不知道的唯一方法登录,是他们的会话到期,所以,默认情况下这是20分钟...我不是真的想把这些信息保存到数据库中,虽然它是有效的,同样的问题仍然存在,所有你可以准确地显示asp.net认为活跃的会话数量不一定是仍在使用您网站的用户数量Jonathans的答案是最佳折衷方案,因为它是一个时间点测量而非保证数字。

答案 2 :(得分:1)

您可以使用数据库会话,然后使用它来跟踪已登录的用户, 一旦开始使用数据库会话,跟踪变得容易,

在线用户数不会只是表中记录的数量

由于您将在会话表中为每个登录用户创建记录,因此您也可以获取登录用户的名称。