Session对象能够保存用户信息,但是Session对象并不能够持久地保存用户信息,当用户在限定时间内没有任何操作时,用户的Session对象将被注销和清除,在持久化保存用户信息时,Session对象并不适用。
1.Cookie对象
使用Cookie对象能够持久化地保存用户信息,相比于Session对象和Application对象而言,Cookie对象保存在客户端,而Session对象和Application对象保存在服务器端,所以Cookie对象能够长期保存。Web应用程序可以通过获取客户端的Cookie的值来判断用户的身份来进行认证。
ASP.NET内包含两个内部的Cookie集合。通过HttpRequest的Cookies集合来进行访问,Cookie不是Page类的子类,所以使用方法和Session和Application不同。相比于Session和Application而言,Cookie的优点如下:
■可以配置到期的规则:Cookie可以在浏览器会话结束后立即到期,也可以在客户端中无限保存。
■简单:Cookie是一种基于文本的轻量级结构,包括简单的键值对。
■数据持久性:Cookie能够在客户端上长期进行数据保存。
■无需任何服务器资源:Cookie无需任何服务器资源,存储在本地客户端中。
虽然Cookie包括若干优点,这些优点能够弥补Session对象和Application对象的不足,但是Cookie对象同样有缺点,Cookie的缺点如下:
■大小限制:Cookie包括大小限制,并不能无限保存Cookie文件。
■不确定性:如果客户端配置禁用Cookie配置,则Web应用中使用的Cookie将被限制,客户端将无法保存Cookie。
■安全风险:现在有很多的软件能够伪装Cookie,这意味着保存在本地的Cookie并不安全,Cookie能够通过程序修改为伪造,这会导致Web应用在认证用户权限时会出现错误。
Cookie是一个轻量级的内置对象,Cookie并不能将复杂和庞大的文本进行存储,在进行相应的信息或状态的存储时,应该考虑Cookie的大小限制和不确定性。
2.Cookie对象的属性
Cookie对象的属性如下:
■Name,获取或设置Cookie的名称。
■Value,获取或设置Cookie的Value。
■Expires,获取或设置Cookie过期的日期和事件。(www.daowen.com)
■Version,获取或设置Cookie符合HTTP维护状态的版本。
3.Cookie对象的方法
Cookie对象的方法如下:
■Add,增加Cookie变量。
■Clear,清除Cookie集合内的变量。
■Get,通过变量名称或索引得到Cookie的变量值。
■Remove,通过Cookie变量名称或索引删除Cookie对象。
4.创建Cookie对象
通过Add方法能够创建一个Cookie对象,并通过Expires属性设置Cookie对象在客户端中所持续的时间,示例代码如下:
上述代码创建了一个名称为MyCookie的Cookies,上述代码通过使用Response对象的AppendCookie方法进行Cookie对象的创建,与之相同,可以使用Add方法进行创建,示例代码如下:
上述代码同样能够创建一个Cookie对象,当创建了Cookie对象后,将会在客户端的Cookies目录下建立文本文件,文本文件的内容如下:
注意:Cookies目录在Windows下是隐藏目录,并不能直接对Cookies文件夹进行访问,在该文件夹中可能存在多个Cookie文本文件,这是由于在一些网站中进行登录保存了Cook-ies的原因。
5.获取Cookie对象
Web应用在客户端浏览器创建Cookie对象之后,就可以通过Cookie的方法读取客户端中保存的Cookies信息,示例代码如下:
上述代码创建一个Cookie对象之后立即获取刚才创建的Cookie对象的值和过期时间。通过Request.Cookies方法可以通过Cookie对象的名称或者索引获取Cookie的值。
在一些网站或论坛中,经常使用到Cookie,当用户浏览并登录在网站后,如果用户浏览完毕并退出网站时,Web应用可以通过Cookie方法对用户信息进行保存。当用户再次登录时,可以直接获取客户端的Cookie的值而无需用户再次进行登录操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。