【发布时间】:2009-08-18 13:47:58
【问题描述】:
我将 Session["UserID"] 的值设置为登录用户的 ID,这样我就可以知道用户是谁。但我想知道所有用户登录我的页面,并显示他们的列表。
【问题讨论】:
我将 Session["UserID"] 的值设置为登录用户的 ID,这样我就可以知道用户是谁。但我想知道所有用户登录我的页面,并显示他们的列表。
【问题讨论】:
通常,您会问“如何知道最近 x 分钟内谁活跃”。
在每个页面条目上记录他们的最后活动时间,然后查询该列表以查看过去几分钟内谁是活动的。您可以扩展它并记录他们访问的最后一页,以了解有多少人在线,以及有多少人在特定页面上。
您可以通过在数据库中的用户表中添加几个字段来做到这一点。一个用于 lastActivityTime,一个用于 lastVisitedLocation。
【讨论】:
您对已登录用户的主要问题是,如果有人关闭浏览器或杀死浏览器,或断电,您无法保证该数字是准确的,这是您知道他们是的唯一方法'未登录,是他们的会话到期时,所以,默认情况下这是 20 分钟......我不太喜欢将这些信息保存到数据库中,虽然它是有效的,但同样的问题仍然存在,你们可以准确显示的是 asp.net 认为活跃的会话数,不一定是仍在使用您网站的用户数 乔纳森的回答是最好的折衷方案,因为它是一个时间点而不是一个有保证的数字。
【讨论】:
您可以使用数据库会话,然后使用它来跟踪登录用户, 一旦您开始使用数据库会话跟踪变得容易,
在线用户的数量将只是表中的记录数
并且由于您将在会话表中记录每个登录用户的记录,因此您也可以获取登录用户的名称。
【讨论】: