ASP.NET Cookie和Session - 15037075275z - 博客园
创建
//第一种 Response.Cookies["userName"].Value = "patrick"; Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);//存的时候指定过期时间 //第二种 HttpCookie aCookie = new HttpCookie("lastVisit"); aCookie.Value = DateTime.Now.ToString(); aCookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(aCookie);
读取
if(Request.Cookies["userName"] != null) { HttpCookie aCookie = Request.Cookies["userName"]; Label1.Text = Server.HtmlEncode(aCookie.Value); }
设置cookie过期时间
默认cookies失效时间是直到关闭浏览器,cookies失效,也可以指定cookies时间。
Response.Cookies("user_name").Expires=Date+1 '指定cookie保存时间
保留COOKIES一个小时
Response.Cookies("MyCookie").Expires= (now()+1/24)
Response.Cookies("MyCookie").Expires = DateAdd("h", 1, Now())
设置60个月以后过期
Response.Cookies("CookieName").Expires=DateAdd("m",60,now())
Response.Cookies("User").expires=second()+7
在expires后面定义的时间可以用时间函数代替
例如:date()+7就表示在今天的时间上加上7天,而second()+7则是7秒了。
Response.Cookies("字段名").expires=时间函数+N,
例如: Response.Cookies("name2").expires=date+1,表示Cookies保存1天,
再比如: Response.Cookies("name2").expires=Hour+8,表示Cookies保存8小时。
这种方法我测试过不行(在2003server,iis6.0中),不管second后面有无加(),
访问时会出现500错误(还是无法显示网页?忘了)。
这里的时间累加建议还是使用DateAdd函数,比如我们要累加一小时,
则使用: Response.Cookies("baidooglecom").expires = DateAdd("h", 1, Now()) 30分钟:
Response.Cookies("CookieName").Expires=DateAdd("n",30,now()) dateadd("S",30,now())
得到秒 Expires 指定 cookie 的过期日期。为了在会话结束后将 cookie 存储在客户端磁盘上,
或在许多时候,我们希望能更长时间地在访问者的计算机上保存cookie。必须设置该日期。
若此项属性的设置未超过当前日期,
则在任务结束后 cookie 将到期。 cookie的使用到期时间为“2010年1月1日”:
Response.Cookies("CookieName").Expires=#January 01, 2010# cookie的过期时间为“cookie的创建时间+365天”:Response.Cookies("CookieName").Expires=Date+365 但最好不要随便写 Response.Cookies("CookieName").Expires=Date,
这样页面之间的调用时值会为空。
---------------------------------------------------------------------------
1.Cookie对象
(1).写入Cookie对象
HttpCookie cookie = new HttpCookie("data"); 注:定义cookie,name属性为data。
cookie.Values.Add("name","123"); 注:cookie是以键值对的方式存储。
cookie.Expires = DateTime.Now.AddYears(2); 注:过期时间设置为2年,也可以不设置过期时间,如果不设置cookie在浏览器关闭是自动清除。
Response.Cookies.Add(cookie); 注:写入Response对象。
(2).读取Cookie对象
HttpCookie cookie = Request.Cookies["data"]; 注:获取name属性为data的cookie
if(cookies !=null &&Cookies.HasKeys) 注:判断cookie是否存在
{
string s = cookies["name"]; 注:根据name键获取值
Response.Write(s);
}
2.Session对象
Session的定义和读取相对比Cookie容易
(1).定义Session对象
Session["Itemsession"] = "abc"; 注:Session的值为"abc",Session的类型是object所以可以赋任何类型。
(2).读取Session对象
string s =(string)Session["Itemsession"] ; 注:读取时的类型,要和定义时的类型一致。
Response.Write(s);
(3).Session特点
同一台电脑的同一个浏览器表示同一次会话,不同的浏览器表示不同的会话。
同一台电脑的同一个浏览器只能有一个Session。
Session的过期时间是在浏览器关闭时自动清除或用户不进行任何活动20分钟Session也会自动清除。
3.Cookie和Session的不同点和相同点
(1).相同点
Cookie对象和Session对象作用是在窗体之间传值。
等等
(2).不同点
Cookie将状态保存在客户端,Session将状态保存在服务器端。
Session相对Cookie,Session的安全性更高。
等等。