【RickTsuei】写一个简单的ASP.NET Web应用程序在线用户列表控件

添加一个显示所有在线用户列表的用户控件。

控件的HTML外观很简单,分为两个Label控件:第一个lblOnlineUsersNum表示在线用户数,第二个lblOnlineUsers表示在线用户列表的字符串。我们直接来看代码就可以了。
 1 Public Partial Class OnlineUsers
 2     Inherits System.Web.UI.UserControl
 3 
 4     Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load
 5 
 6         If Not IsPostBack Then
 7             ''声明在线用户集合
 8             Dim altUsersOnline As New ArrayList
 9             ''遍历所有用户
10             For Each user As MembershipUser In Membership.GetAllUsers
11                 If user.IsOnline Then
12                     ''如果用户在线则添加入在线用户集合
13                     altUsersOnline.Add(user)
14                 End If
15             Next
16 
17             Dim strUsersOnline As String = String.Empty
18 
19             If altUsersOnline.Count > 0 Then
20                 ''如果存在在线用户把第一个用户的用户名付给字符串
21                 strUsersOnline = DirectCast(altUsersOnline(0), MembershipUser).UserName
22             End If
23 
24             ''便利其余所有在线用户
25             For index As Integer = 1 To altUsersOnline.Count - 1
26                 ''将其他在线用户的名字添加到在线用户列表的字符串中
27                 strUsersOnline += "" & DirectCast(altUsersOnline(index), MembershipUser).UserName
28             Next
29 
30             lblOnlineUsersNum.Text = Membership.GetNumberOfUsersOnline()
31 
32             If Not String.IsNullOrEmpty(strUsersOnline) Then
33                 lblOnlineUsers.Text = strUsersOnline
34             Else
35                 lblOnlineUsers.Text = "No user has been logged in."
36             End If
37 
38         End If
39     End Sub
40 
41 End Class

如此我们就实现了一个最简单的用户列表,如果想实现的复杂一些,可以在ASP.NET Profile中定制用户的头像,然后通过头像属性用头像或者ICON的图片和用户名一起表示的方式来显示在线用户,也是很切合实际的功能。
请使用浏览器的分享功能分享到微信等