下面是global.asa的内容:
Sub Application_OnStart
' Delete all saved session information, in case of a crash
set objADO = Server.CreateObject("ADODB.Connection")
sDatabasePath = Server.MapPath("/databases")
sConnection
= "filedsn="&sDatabasePath&"\readwrite.dsn;DBQ="&sDatabasePath&"\sessi
ons.mdb;"
objADO.Open(sConnection)
sUpdateCmd = "delete * from session;"
objADO.Execute(sUpdateCmd)
' Close the database down again
objADO.close
set objADO=Nothing
' Now store the DSN connection string away, so we don't have to look
it up again
Application("sessionDSN") = sConnection
End Sub
Sub Session_OnStart
' Write the session information away into the session database
set session_objADO = Server.CreateObject("ADODB.Connection")
session_objADO.Open(Application("sessionDSN"))
session_sUpdateCmd = "insert into session values
("&Session.SessionID&","
session_sUpdateCmd = session_sUpdateCmd & "'"&Request.ServerVariables
("REMOTE_ADDR")& "',"
session_sUpdateCmd = session_sUpdateCmd & "'"&Request.ServerVariables
("HTTP_USER_AGENT")&"');"
session_objADO.Execute(session_sUpdateCmd)
' Close the database down again
session_objADO.close
set session_objADO=Nothing
End Sub
Sub Session_OnEnd
' Delete the session information from the session database
set session_objADO = Server.CreateObject("ADODB.Connection")
session_sConnection = Application("sessionDSN")
session_objADO.Open(session_sConnection)
session_sUpdateCmd = "delete * from session where
SessionID="&Session.SessionID&";"
session_objADO.Execute(session_sUpdateCmd)
' Close the database down again
session_objADO.close
set session_objADO=Nothing
End Sub
下面是实现功能的一个例子:
<% OPTION EXPLICIT
' currentusers.asp V1.0
' Copyright 1998/99 Bann Consultants barryd@bann.co.uk
' Created 03/11/98 Modified 03/11/98
' On-line documentation at http://www.bann.co.uk/asp/
'
' COPYRIGHT NOTICE
' Copyright 1998-1999 Barry Dorrans All Rights Reserved.
'
' CurrentUsers may be used and modified free of charge by anyone so
long
' as this copyright notice and the comments above remain intact. By
using
' this code you agree to indemnify Barry Dorrans from any liability
that
' might arise from its use.
'
' Selling the code for this program without prior written consent is
' expressly forbidden. In other words, please ask first before you
try and
' make money off of my program.
'
' Obtain permission before redistributing this software over the
Internet or
' in any other medium. In all cases copyright and header must remain
intact
%>
Current User report Current User Report
Remote Host |
Browser |
<%
DIM objADO, sDatabasePath, sConnection, sessionRecords
DIM userCount
userCount = 0
SET objADO = Server.CreateObject("ADODB.Connection")
sDatabasePath = Server.MapPath("/databases")
sConnection
= "filedsn="&sDatabasePath&"\readonly.dsn;DBQ="&sDatabasePath&"\sessio
ns.mdb;"
objADO.Open(sConnection)
SET sessionRecords = objADO.execute("select * from session;")
DO WHILE NOT sessionRecords.EOF
userCount = userCount + 1
%>
<%=sessionRecords("Host")%> |
<%=sessionRecords("BrowserType")%> |
<% sessionRecords.MoveNext
LOOP
sessionRecords.Close
objADO.close
SET sessionRecords = Nothing
SET objADO=Nothing
%>
Session变量的有效期默认为20分钟,可以通过下面来改变它的默认有效期:
Session.Timeout=(有效期的分钟数)