如何使用asp.net和SQL Server查找可用用户列表?

如何使用asp.net和SQL Server查找可用用户列表?,asp.net,sql-server,Asp.net,Sql Server,我有一个名为users的SQLServer2008表,它存储用户详细信息。我有一个aspx页面,用户登录后将被重定向 如何查找当前登录但未更新此表的用户列表及其用户详细信息?我需要一个单独的表来维护登录历史记录吗 有人建议我使用ASp.net成员资格和角色功能。通过使用它,我如何才能找到登录用户的列表?i、 e,在线用户和离线用户?这不是SQL server端需要做的事情-最常见的方法是使用会话对象并在Global.asax的会话开始和会话结束事件中编写代码 这个问题的答案将是一个很好的起点:

我有一个名为
users
的SQLServer2008表,它存储用户详细信息。我有一个aspx页面,用户登录后将被重定向

如何查找当前登录但未更新此表的用户列表及其用户详细信息?我需要一个单独的表来维护登录历史记录吗


有人建议我使用ASp.net成员资格和角色功能。通过使用它,我如何才能找到登录用户的列表?i、 e,在线用户和离线用户?

这不是SQL server端需要做的事情-最常见的方法是使用会话对象并在Global.asax的
会话开始
会话结束
事件中编写代码

这个问题的答案将是一个很好的起点:

编辑:若要添加以下评论,我建议使用SQL Server成员资格提供程序并从会话ID中导出用户列表

如果您想对自己的(自定义)用户/登录模式执行此操作,则需要添加一列,以便在每次用户登录时写入会话ID,然后在会话过期时将其删除,再次使用
会话开始
会话结束
事件


但是我强烈建议您使用.NET成员身份,因为您可能会通过滚动自己的身份来引入安全漏洞。

同意@Widor,但是如果您必须在SQL上这样做,并且您的用户是SQL Server用户,您可以运行
exec sp_who2
来获取活动用户列表

编辑:


您必须添加一列,其中datatable作为标志,登录时设置为true,会话结束时设置为false


获取基于标志列(例如)的列表,其中flg=true

参考此链接:也参考此链接:@Fernando该链接与此问题有何关系?上面的链接是如何查找用户的登录状态。但我需要登录用户的名单。好的。但它只给出了计数,没有得到存储在数据库中的用户详细信息,即,我需要用户及其用户名的列表我在回答中添加了更多详细信息。对不起,我需要登录我的网页的用户,其用户详细信息存储在sqlserver中,而不仅仅存储在sql中。好的,请尝试运行我编写的查询,它将带来一个SQL Server用户列表。现在,您需要做的是将它与您的用户表连接起来,然后获得所需的信息
select distinct(loginame)
from master..sysprocesses 
where db_name(dbid) = 'DB_NAME'