一、Cookie对象
Cookie最根本的用途是能够帮助网站保存有关访问者的信息。
1. cookie对象的属性
Name:获取或设置Cookie的名称
Value: 获取或设置Cookie的值
Expires: 获取或设置Cookie的过期日期和时间
Version:获取或设置此Cookie符合的HTTP状态维护版本
Comment:获取或设置服务器可添加到Cookie中的属性
2. cookie对象的方法
Add:新增一个Cookie变量
Clear:清除Cookie结合内的变量
Get:通过变量名或索引得到Cookie的变量值
GetKey:以索引来获取Cookie的变量名称
Remove:通过Cookie变量名来删除Cookie变量
3. cookie对象的使用
Cookie可以定义为服务器存储在浏览器上的少量信息,它的主要用途是在客户中保留客户的个人信息,而Cookie又分为两类
(1)会话Cookie的创建方式
.创建和读取会话Cookie
可以使用Response类的Cookies属性来创建会话Cookie,使用Request对象读取。
创建语法:
HttpCookie myCookie = new
HttpCookie("UserSettings",”hello”);
Response.Cookies.Add(myCookie
读取语法:
Request.Cookies[“Cookie名“].Value)
说明:Cookie只能包含字符串值。 如果想在Cookie中存数值,比如用户ID,那么
需要将此值转换为字符串
(2)还有一种Cookie称为持久性Cookie,它是有一定的生命周期的,用户可以自定义这个生命周期,这种持久性的Cookie会以特殊文件的形式保存在客户端,当用户再次访问这个网站时,服务器会自动取出该用户的相关信息
持久性Cookie类似于会话Cookie,区别在于持久性Cookie具有确定的过期日期。当浏览器请求一个创建持久性Cookie的页面时,浏览器将Cookie保存到硬盘。
持久性Cookie在用户的计算机上以纯文本方式存储。因此,不应该在持久性Cookie中存储敏感信息,比如口令和信用卡号。持久Cookie与会话Cookie之间的差别在于增加了过期信息。
4. Cookie的限制
(1)单个Cookie包含的信息量不能多于4KB。
(2)只能在Cookie中存储字符串内容,
(3)依赖于浏览器
例】 Cookie对象属性与方法的应用示例,针对于单个用户的访问次数计数器using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partialclass Cookie_CookieDemot : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Response.SetCookie(new HttpCookie("Color",TextBox1.Text));
string ip = Request.UserHostAddress;//获取访问主机的Ìp
int number = 1;
//想让number来进行运算,每登陆一次就让number加1-----加1后结果报存起来下次再这个结果上再加1
//每次把number的结果放在一个cookie中如Cookie["IntVisit"]=number; request.Cookies["IntVisit"]
if (Request.Cookies["IntVisit"] ==null)//第一次访问网页时,key值为aIntVisit的cookie还不存在。
{
HttpCookie cookie =new HttpCookie("IntVisit", number.ToString());//不存在就声明个intVisit的cookie
cookie.Expires = DateTime.Now.AddYears(1);//设置cookie的有效时间?
Response.Cookies.Add(cookie);//设置个可以保存在浏览器硬盘中的Ìcookie
}
else
{
HttpCookie cookie = Request.Cookies["IntVisit"];
number = Convert.ToInt32(cookie.Value);//获取当前ip的访问次数
number++;//次数加1
cookie.Value = number.ToString();
cookie.Expires = DateTime.Now.AddYears(1);
Response.SetCookie(cookie);
}
Response.Write("您的Ìp为:" + ip +"访问次数为:" + number);
Response.End();
}
}