180 likes | 376 Views
ASP. Session 和 Application 对象. 思考. 用户输入用户名和密码进入管理功能版块,管理功能包含多个页面,例如信息添加、更新、删除等,如果有人不通过登录,而直接在 IE 地址栏中输入管理页 URL ,试图进入,怎么办? 采用 Request.Querystring 可在页面间传递信息、 Cookie 可保存用户信息,但都比较麻烦,不太安全。. Session 对象. Session 对象用于追踪、存储、传递某个用户信息。 引用 Session 则可以使一个用户在多个页面间切换的时候也能保留该用户的信息。
E N D
ASP Session和Application对象
思考 • 用户输入用户名和密码进入管理功能版块,管理功能包含多个页面,例如信息添加、更新、删除等,如果有人不通过登录,而直接在IE地址栏中输入管理页URL,试图进入,怎么办? • 采用Request.Querystring可在页面间传递信息、 Cookie可保存用户信息,但都比较麻烦,不太安全。
Session对象 • Session对象用于追踪、存储、传递某个用户信息。 • 引用Session则可以使一个用户在多个页面间切换的时候也能保留该用户的信息。 • Session信息是对一个客户而言,不同的客户信息用不同的Session信息来记录。
Session信息保存在服务器端的一块内存区域中。当每一个用户开始访问该网站时(术语称会话),服务器端就会给该用户建立一个Session对象,在服务器端内存中给他分配一块区域,用来存储该用户的信息,用户在网站内任何页面都可以保存并读取这些信息。当该用户结束访问(会话结束),服务器端就会清除这个Session对象,并释放相应的内存区域。 • 会话结束:不是指关闭浏览器,而是通过Session对象的有效期,如果在有效期时间用户没有操作,服务器则关闭并清空该用户Session,会话结束。也可以通过Session.Abandon强制结束。
Session保存变量或字符串等信息,语法如下:Session(“Session名字”)=变量或字符串信息.Session保存变量或字符串等信息,语法如下:Session(“Session名字”)=变量或字符串信息. • 例如 保存用户姓名Session("name")="卓云” (插曲:以上代码何处有输入错误?) 读取Session信息: name=Session("name")
Session对象的主要属性 • SessionID:返回会话标识符(ID),即存储用户的Session ID。 • TimeOut:定义Session的有效期。单位为分钟,默认为20分钟。
SessionID • 给每一个用户分配了可以识别它的唯一标识,当首次用户访问时,就会产生用户的ID且一直在网站保留。
TimeOut属性 • 利用Timeout属性可以修改Session对象的有效期时长,默认为20分钟。 • 语法:Session.Timeout=整数(分钟) • 例如:<% Session.Timeout=30 ‘设置Session对象的有效期时长为30分钟 %>
Abandon方法 • Session对象到期后会自动清除,但到期前可以用Abandon方法强行清除。例如用户退出登录。 • 语法:Session.Abandon • 例如:<% Session.Abandon %>
实例 • 用户登录表单 <form method="POST" action=""> 用户:<input type="text" name=UserName> 口令:<input type="password" name=Password > <input type="submit" name="Submit" value="提交" > </form>
<% strSql =“Select * From 管理权限 where 姓名=‘” & Request(“Username”) & “’ And 口令='" & Request("Password")& "'" Set rs=db.Execute(strSql) If Not rs.Bof And Not rs.Eof Then Session("Name") = RS("姓名") Response.Redirect “admin.asp" else Response.Redirect “err.asp" End If %>
<% if isempty(Session(“name")) then Response.Redirect “err.asp" end if %>
Application对象 • 记载所有用户的共享信息。
Application的操作和Session非常类似,存储信息的语法:Application(名称)=变量或字符串信息。Application的操作和Session非常类似,存储信息的语法:Application(名称)=变量或字符串信息。 • 因此对象可以多个用户操作,为防止失误,保存Application信息时,需要先锁定,然后再解除锁定 Application.Lock ‘锁定,以防其他用户更改 Application ("school")="北京大学" Application.Unlock ‘解除锁定,让别的人写