|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
五、会话终止 当ASP会话结束时会运行global.asa中的Session_OnEnd方式,可以在这里删除 保存在Application("Users")数组中由于超时而被终止会话的用户。记录用户是由 于什么原因(超时还是显式退出)终止会话往往很有用处,下面的代码通过更新Users 表的TimedOut字段实现该功能: sub Session_OnEnd dim AppUsers dim aUser dim I dim j dim conn dim supportsCookies dim foundUser on error resume next supportsCookies=Session("SupportsCookies") Application.Lock AppUsers = Application("Users") foundUser = false for I = 0 to ubound(AppUsers) set aUser = AppUsers(I) if supportsCookies then if aUser("SessionID") = Session.SessionID then foundUser = true end if elseif dateAdd("n", Session.timeout, aUser("LastActivity")) < now() then foundUser = true end if if foundUser then set conn = server.createObject("ADODB.Connection") conn.ConnectionString=Session("ConnectionString") conn.ConnectionTimeout=Session("ConnectionTimeout") conn.mode=Session("Mode") conn.open conn.execute "UPDATE Users SET TimedOut=1 WHERE Users.Signon=\\\'" & aUser("Signon") & "\\\'" conn.close set conn=nothing set aUser=nothing set AppUsers(I) = nothing for j = I to ubound(AppUsers) - 1 set AppUsers(j) = AppUsers(j + 1) next if ubound(AppUsers) > 0 then redim preserve AppUsers(ubound(AppUsers) - 1) else AppUsers = Array() end if exit for end if next Application("Users") = AppUsers Application.UnLock end sub 返回类别: 教程 上一教程: ADO如何锁定RECORDSET的记录 下一教程: 计算两个时间之差的函数 您可以阅读与"在ASP应用中验证用户身份(5)"相关的教程: · 在ASP应用中验证用户身份(3) · 在ASP应用中验证用户身份(1) · 在ASP应用中验证用户身份(2) · 在ASP应用中验证用户身份(4) · 用WSE在WEB服务中验证用户身份 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |