ASP.NET | 表单身份验证| 获取所有登录用户(所有用户列表或计数)

Chi*_*ago 8 c# forms asp.net authentication

我使用的是.NET 3.5.此外,使用表单身份验证.

有没有办法获取所有登录用户的列表或ASP.NET中的计数

注意:我没有使用会员资格和角色

Rus*_*Cam 6

没有,除非

  1. 您已在自己的代码中定义了一个

  2. 您正在使用已GetNumberOfUsersOnline()定义方法的默认ASPNET成员资格提供程序.

  3. 您正在使用自定义成员资格提供程序,并自己提供了该GetNumberOfUsersOnline()方法的实现

默认的ASPNET成员资格提供程序通过查询SQL Server数据库并LastActivityDate根据UserIsOnlineTimeWindow您可以在web.config中设置的已定义属性检查针对每个用户存储的用户来计算联机用户数.如果LastActivityDate大于当前时间减去UserIsOnlineTimeWindow值(表示分钟),则认为用户在线.

如果你想做类似的事情,那么你可以考虑实施类似的方法.您可以通过下载源代码来查看默认提供程序的代码.要完成图片,您可能还需要运行aspnet_regsql.exe,以便可以查看默认提供程序使用的存储过程.


I A*_*ack 5

会员服务提供商确实有它的好处,但只是为了在线跟踪用户,您还可以:

  1. 在您的用户表中添加一列 LastActivityDate并在登录期间和该用户的所有页面加载时从您的代码更新它。

  2. 并且要让用户在过去X分钟内在线,只需使用以下 sql

    Select * from Users where LastActivityDate >
    DATEADD(minute,  -(X), GETDATE())  
    
    Run Code Online (Sandbox Code Playgroud)