Session("myitem") = "hello!"
这个语句向会话状态中添加条目之后,可以在用户访问的任何页面上获取此条目。如下:
Response.Write(Session("myitem"))
1 : session.remove("myitem") // 删除特定条目
2:session.removeall // 删除全部
启动用户会话
当用户向一个网站请求第一个页面的时候,用户会话就启动。当第一个页面被请求时, WEB 服务器将
asp.net_sessionID cookie 添加进用户的浏览器
可以使用 NewSession 属性来探测新会话的启动。当新会话启动的时候,其返回为 TRUE 值
response.write(session.newsession)
每一个用户会话被分配唯一的会话 ID 。可以象下面这样获取会话 ID 的值:
response.write(session.sessionID)
会话 ID 确保在所有当前用户会话中是唯一的,但是,随时间的推移会话 ID 不保证唯一;可能为将来的新会话循环使用会话 ID
结束用户会话:
用户会话结束默认为20分钟(如果这段时间无动静的话),也可以自己修改
session.timeout=30
可以将此在 web.config文件里设置如:
<configuration>
<system.web>
<sessionstate timeout="60"/>
</system.web>
</configuration>
还可以显式地结束用户会话。办法是调用Abandon方法:
session.abandon
此方法常常用来注销页面,当此方法被调用之后,他下次再打开页面就被当新用户对待
注意:调用abandon方法并不立即结束用户会话,而是等到当前页面完成处理!
处理会话事件
可以捕获与会话状态相关的两个事件:Session_start和session_end事件。当用户向一个页面来
显示你的网站上当前活跃的用户会话数。
比如在global.asax上修改
sub session_start()
if application("sessioncount") is nothing then
application("sessioncount")=0
end if
application("sessioncount")+=1
end sub
sub session_end()
appliction("sessioncount")-=1
end sub
当用户会话开始时候,还可以使用session_start子例程自动地将用户转移到特定页面。
比如:希望访问你网站的所有用户在访问其他页面的时候都要访问default.aspx页面。
当你访问其他页面的时候,下面将会自动转回default.aspx
sub session_start
if instr(request.path.tolower, "/default.aspx")=0 then
response.redirect("default.aspx")
end if
end sub
禁止会话状态
在默认情况下,会话状态对所有的页面都适用,如果你不需要会话状态,可以为页面禁止会话状态,
要为特定的页面禁止会话状态,需要在PAGE指令中修改enablesessionstate属性的值
〈%@page enablesessionstate="false"%>
如果是需要从会话状态中获取对象,但是不需要向其中添加对象,那么可以将enablesessionstate属性设置为
readonly
<%@ page enablesessionstate="readonly"%>