您的位置:首页 > 编程语言 > ASP

ASP.NET 2.0 状态管理 学习笔记(一)

2007-06-28 10:20 549 查看
一、状态管理与数据库
现在的Web应用程序,通常都是数据驱动的,但是在状态处理中,我们应该尽量减少对数据库的依赖,原因如下。
· 数据库是存放在磁盘上的。如果把数据存放在数据库中的话,性能会比较差。
· 很多数据是和用户相关的。如果把数据存放在数据库中的话,我们没有一个唯一的标志来区分哪条记录对应哪个客户端(浏览器)。
· 很多数据是临时的,用户关闭了浏览器这些数据就不再需要了。如果把数据存放在数据库中的话,我们不知道是哪个用户关闭了浏览器,也就不能及时把数据删除。
n 通常来讲,状态管理的作用主要概括为以下几点。
· 指示用户信息,关联浏览器实例。
· 使得页与页之间,请求与请求之间能够共享信息。
· 更为快速的数据存储与读取。
二、状态管理机制

· 存储的物理位置。比如是存储在客户端还是服务端。
· 存储的类型限制。比如是可以存放任意类型还是仅仅可以存放字符串。
· 状态使用的范围。比如是否可以跨应用程序?是否可以跨用户?是否可以跨页面?
· 存储的大小限制。比如是任意大小还是有一定字节限制。
· 生命周期。什么时候建立?什么时候销毁?
· 安全与性能。比如是否加密存储?是否适合存储大量数据?
· 优点缺点与注意事项。
三、COOKIE
(一)、Cookie概述
Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法。例如,当用户访问站点时,可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问站点时,应用程序就可以检索以前保存的信息。
从技术上讲,Cookie是小段保存在客户端的数据(如果你安装的是XP,可以看一下<安装Windows的盘>:/Documents and Settings/<用户名>/Cookies文件夹)。用户访问网站的时候,网站会给用户一个包含过期时间的Cookie,浏览器收到Cookie后就存放在客户端的文件夹下。以后用户每次访问网站页面的时候,浏览器会根据网站的URL在本地Cookie文件夹内查找是否存在当前网站关联的Cookie,如果有的话就连同页面请求一起发送到服务器。
关于Cookie的知识还需要了解以下几点。
· Cookie只是一段字符串,并不能执行。
· 大多数浏览器规定Cookie大小不超过4K,每个站点能保存的Cookie不超过20个,所有站点保存的Cookie总和不超过300个。
(二)、Cookie的使用
1、写入Cookie
HttpCookie SingleValueCookie = new HttpCookie("test1", "单值Cookie");
SingleValueCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(SingleValueCookie);
HttpCookie MultiValueCookie = new HttpCookie("test2"); //一个Cookie中允许保存单个值也可以保存多个值
MultiValueCookie.Values.Add("key1", "value1"); //MultiValueCookie.Values["Key1"].Value="Value1"
MultiValueCookie.Values.Add("key2", "value2"); //MultiValueCookie.Values["Key2"].Value="Value2"
MultiValueCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(MultiValueCookie);
2、读取
HttpCookie SingleValueCookie = Request.Cookies["test1"];
if (SingleValueCookie != null)
{
Response.Write(string.Format("Key:{0} Value:{1} Expires:{2}<br/>", "test1",
SingleValueCookie.Value, SingleValueCookie.Expires));
}
HttpCookie MultiValueCookie = Request.Cookies["test2"];
if (MultiValueCookie!= null)
{
foreach (string subkey in MultiValueCookie.Values.AllKeys)
{//对于多值Cookie,我们通过遍历AllKeys属性返回的字符串数组获取所有子键Key,从而获得子键的值
Response.Write(string.Format("SubKey:{0} Value:{1} Expires:{2}<br/>",
subkey, MultiValueCookie.Values[subkey], MultiValueCookie.Expires));
}
}
(三)、 Cookie总结
Cookie虽然是一个简单实用的对象,但是我们也要注意Cookie的工作原理、大小限制以及安全性等,大致可以归纳为以下几点。
· 存储的物理位置。客户端的Cookies文件夹内。
· 存储的类型限制。字符串。
· 状态使用的范围。当前请求上下文的上下文都能访问到Cookie,Cookie对每个用户来说都是独立的。
· 存储的大小限制。每个Cookie不超过4K数据。每个网站不超过20个Cookie。所有网站的Cookie总和不超过300个。
· 生命周期。每个Cookie都有自己的过期时间,超过了过期时间后失效。
· 安全与性能。存储在客户端,安全性差。对于敏感数据建议加密后存储。
· 优点缺点与注意事项。可以很方便地关联网站和用户,长久保存用户设置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: