在ASP.NET中显示谁在线

时间:2012-03-18 14:32:48

标签: c# asp.net

在不使用成员资格控制的情况下,在c#中显示谁在线的最简单方法是什么? 唯一的方法是使用会话吗?

2 个答案:

答案 0 :(得分:2)

您可以通过以下方式执行此操作:

var onlineUsers = System.Web.Security.Membership.GetAllUsers()
    .Cast<System.Web.Security.MembershipUser>()
    .Where(user => user.IsOnline);

但是你需要正确地缓存/刷新它,因为它可能是一个非常昂贵的操作。

答案 1 :(得分:0)

是转到global.asax并在application_start事件中创建新的List<>用户类类型并将其保存到缓存

    List<User> OnlineUsers = new List<User>();
    Cache.Insert ("onlineuser",OnlineUsers,...);

并在您的loginButton代码中从缓存中获取列表并添加登录用户

    User loggedin =someHelperCode.GetUser (txtUserName.Text,txtPassword.Text);
    ((List<User>)Cache["onlineuser"]).Add (loggedin);

当用户退出时,执行相同操作并删除用户

你可以将列表绑定到任何丢失的绑定控件