ASP.NET对象

Download Report

Transcript ASP.NET对象

第五章 ASP.NET对象
褚龙现
[email protected]
软件学院
回顾内容
 Server对象
 Application对象
软件学院
回顾– Server对象的方法
方法名
功能说明
HtmlEncode
对显示字符串进行编码
UrlEncode
对指定字符串以URL格式编码
MapPath
将虚拟路径转换为物理路径
Execute
使用另一页执行当前请求
Transfer
终止当前页,执行新页面
软件学院
回顾– Application存储信息
 Application中信息是应用程序共享
的,对其进行写操作时一般作加锁
处理。
 Application.Lock();
 Application[“age”]=25;
 Application.UnLock();
软件学院
回顾– Application读取信息
 在访问Application信息时,为了防
止访问不存在的对象信息,一般先
作判断
 If(Application[“age”]!=null)
{
//Application[“age”]
}
软件学院
教学目标
掌握Session对象
掌握Cookies对象
理解Application对象应用实例
理解Session对象应用实例
软件学院
教学重难点
重点
Session和Cookies对象使用方法
难点
Cookies对象
软件学院
5.6 Session对象
 Session对象的主要作用是在服
务器端存储特定信息,这些信息
都是局部的,是特定于某一个用
户的。
 Session中的信息也被称为会话
状态。
软件学院
5.6 Session对象
 Session对象可以实现在网站内
部不同页面之间共享信息,但共
享的信息属于特定用户。
 在浏览器第一次请求应用程序的
某个页面时,会话开始;在会话
超时或被关闭时,会话结束。
软件学院
5.6.1 Session生命周期
 Session的生命周期是有限的,默认为20分
钟,可以通过Session对象的Timeout属性
设置。在生命周期内,Session值有效,若
用户在大于生命周期的时间里没有再访问应
用程序,Session会自动过期,此时Session
对象被释放,其存储的信息不再有效。
软件学院
5.6.2 使用Session对象
 如果要使用Session对象,必须
保证页面的@Page指令中的属性
EnableSessionState值为True
或ReadOnly,并在Web.config
文件中对Session进行了正确配
置。
软件学院
5.6.2 使用Session对象
 Session中存储信息
 Session中读取信息
 Session中删除信息
软件学院
Session存储信息
 Session是一个集合对象,是存储
信息的容器,信息在集合中是以对
象的形式存放的。每条信息对应一
个对象名和一个对象值。
 添加新对象的方法
 Add(string name,object value)
 Session[“name”]=value
软件学院
Session读取信息
 Session中的信息可以通过对象名
称索引或对象在集合中的位置数字
索引来访问。
 访问信息
 Session[0]
 Session[“age”]
软件学院
Session读取信息
 在访问Session信息时,为了防止
访问不存在的对象信息,一般先作
判断
 If(Session[“age”]!=null)
{
//Session[“age”]
}
软件学院
删除Session信息
 Session中的对象不再使用时可以
显示地删除。
 删除信息
 Session.Remove(“age”);
 Session.RemoveAll();
 Session.Clear();
软件学院
5.6.3 配置Session
 使用Session前一般需要修改配置文件
<configuration>
<system.web>
<sessionState mode=“Inproc”
cookieless=“false” timeout=“20”>
</sessionState>
</system.web>
</configuration>
软件学院
5.6.3 配置Session
 <sessionState>标记的属性
 cookieless属性可选,指示会话是否使用客
户端cookie
 timeout属性可选,指定在放弃一个会话前
该会话处于空闲状态的分钟数,默认20
 mode属性必须有,指定在哪里存储会话状
态
软件学院
5.7 Cookies对象
 Cookie是一小段文本信息,伴随
着用户请求同页面一起在Web服
务器和浏览器之间传递。
 用户每次访问站点时,Web应用
程序都可以读取Cookie包含的信
息。
软件学院
5.7.1 Cookie使用限制
 大多数浏览器支持最大4096字节的
Cookie,不能保存大量数据;
 浏览器限制每个站点可以在用户计
算机上保存的Cookie数;
 用户可以设置自己的浏览器,拒绝
接受Cookie。
软件学院
5.7.2 设置Cookie
 使用Response对象的Cookies属性
设置Cookie信息,使用Request对象
的Cookies属性读取Cookie信息。
 Cookie对象由HttpCookie类实现
软件学院
5.7.2 设置Cookie
 Cookie对象的常用属性
属性名
Name
Expires
Domain
HasKeys
Path
Secure
Value
Values
说明
获取或设置Cookie的名称
获取或设置Cookie的过期日期和时间
获取或设置Cookie关联的域
获取一个值,指示Cookie是否具有子键
获取或设置要与Cookie一起传输的虚拟路径
获取或设置一个值,指示是否安全传输
获取或设置单个Cookie值
获取在单个Cookie对象中包含的键值对集合
软件学院
5.7.2 设置Cookie
 [例1]设置Cookie名为userage,有效期3天
Response.Cookies[“userage”].Value
=18.ToString();
Response.Cookies[“userage”].Expires
=DateTime.Now.AddDays(3);
软件学院
5.7.2 设置Cookie
 [例2]设置多值Cookie名为user,有效期3天
Response.Cookies[“user”][“username”]
=“张三”;
Response.Cookies[“user”][“userage”]
=18.ToString();
Response.Cookies[“user”].Expires
=DateTime.Now.AddDays(3);
软件学院
Application应用实例—聊天室
软件学院
Application应用实例—聊天室
软件学院
Application应用实例—聊天室
 所需页面
 Send.aspx:用于发送信息
 Main.aspx:用于显示信息,并且定时
刷新
 Index.htm:主页面用于分割浏览器,
将浏览器分为上下两部分,上面显示聊
天内容,下面完成信息发送功能
软件学院
Application应用实例—聊天室
 功能设计思路
 定义一个全局变量用于存放聊天内容,且该变
量为所有用户共享
 在发送页面中输入个人聊天内容,同时可以通
过按钮事件将聊天内容添加到全局变量中
 在显示页面显示全局变量的内容,并且定时刷
新页面使得用户看到最新内容
 将发送页面与显示页面合成到一个页面
软件学院
Application应用实例—聊天室
 全局变量定义
 全局变量使用Application定义
 当应用程序启动时定义全局变量
 添加Global.asax文件用来实现应用程
序启动事件
软件学院
Application应用实例—聊天室
 Send.aspx页面相关功能实现
 界面设计:两个文本框和一个按钮
 程序实现:按钮事件中完成以下功能
1. 获取用户输入信息并设置信息样式
2. 将信息添加到全局变量中,注意加锁
3. 清空内容文本框
软件学院
Application应用实例—聊天室
 Main.aspx页面相关功能实现
 界面设计:一个标签
 程序实现:页面加载时实现以下功能
1. 标签显示全局变量的内容
2. 将页面设置为定时刷新,设置方法
<meta http-equiv="refresh" content="4;" />
软件学院
Application应用实例—聊天室
 相关页面组合
 创建主页面index.htm
 使用框架实现页面组合
<frameset rows="*,150">
<frame src="main.aspx"></frame>
<frame src="send.aspx"></frame>
</frameset>
软件学院
Session应用实例—用户权限检查
 问题描述
网站中有部分页面只有通过成功登录的用户
才能访问,当这些页面被请求时如何判断该用户
是否通过了登录?
 解决方法
使用Session对象实现。用户登录成功则记
Session变量,然后在保护页面中判断Session中
的值是否是已经记录的值即可。
软件学院
Session应用实例—用户权限检查
 所需页面
 Default.aspx:主页面,用于提供正常
登录的入口
 Login.aspx:登录页面,用于用户登录
 Member.aspx:受保护的页面
软件学院
Session应用实例—用户权限检查
 功能设计思路
 网站中添加三个页面,主页面、保护页面和登录页面
 主页面中提供正常登录的入口,可以用超链接
 登录页面包含必须的用户名和密码文本框以及按钮
 登录按钮事件中判断登录是否成功,若成功则定义该
用户的Session变量,如保存用户名
 在保护页面加载时判断Session变量,如果Session中
是用户名则证明用户已经成功登录,否则跳转到登录
页面
软件学院
下次课讲解内容
 关系数据库设计
软件学院