The are many tutorials on the Internet that will show how many active users are
  on a website. Here is one – http://www.4guysfromrolla.com/webtech/061399-2.shtml
  . But, it can be a bit trickier to extend this to give a list of the active users.
  In the example I going to show you, I will store the users in an XML file. This
  method may not be perfect, but may suit the needs of many.
After a user logs in, we can store their details in XML. The file below can
  be included in each page. All the demo files can be downloaded from link at
the bottom of the page. When a page is loaded the following actions are performed:
1.
    The XML is loaded from disk (the folder containing the XML file must have
  the correct permissions to write to it)
  2. Users are removed from the file that haven’t visited a page in the last
  5 minutes (this is stored in the UserTimeout variable and can be changed)
  3. Any reference to the current user is also removed.
  4. A timestamp is added for the current user.
  5. The XML file is then saved to disk.
Another include file is then used to show the users. This is included in the
  demo files below.
<%
'This file goes on every page that is is protected
Session.LCID=2057
XmlFile=Server.MapPath("xml/users.xml")
Username=Session("MM_Username")
UserTimeout=5 'A 5 minute timeout seems reasonable
ExpiryDate=IsoFormat(dateadd("n",-UserTimeout,Now))
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.load(XmlFile)
set objNodeXML=objXML.documentElement
RemoveOldNodes
RemoveUserNodes
AddUserNode
objXML.Save XmlFile
Set objXML = Nothing
function RemoveOldNodes
	set OldNodes=objNodeXML.selectNodes("user[@date < '" & ExpiryDate & "']")
	if IsObject(OldNodes) then
		for each nd in OldNodes
			objNodeXML.removeChild(nd)
		next
	end if
end function
function RemoveUserNodes
	set CurrentUserNodes=objNodeXML.selectNodes("user[@username='" & Username & "']")
	if IsObject(CurrentUserNodes) then
		for each nd in CurrentUserNodes
			objNodeXML.removeChild(nd)
		next
	end if
end function
function AddUserNode
	set newNode=objXML.createNode(1,"user","")
	newNode.setAttribute "username",Username
	newNode.setAttribute "date",IsoFormat(now)
	objNodeXML.appendChild(newNode)
end function
function IsoFormat(t)
	IsoFormat=year(t) & FormatDT(month(t)) & FormatDT(day(t)) & FormatDT(Hour(t)) & FormatDT(minute(t)) & FormatDT(second(t))
end function
function FormatDT(o)
	if len(o)=1 then
		FormatDT="0" & o
	else
		FormatDT=o
	end if
end function
%>