码迷,mamicode.com
首页 > Web开发 > 详细

Web--->>>Cookie与Session

时间:2015-04-07 09:34:22      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:


1、cookie
1、cookie是存在客户端(浏览器)的进程内存中和客户端所在的机器硬盘上
2、cookie只能能够存储少量文本,大概4K大小
3、cookie是不能在不同浏览器之间共享



3、创建cookie对象的写法演示
//3.0 实例化cookie对象
HttpCookie cookie = new HttpCookie("uid", uid);
// 告诉浏览器只有请求指定了路径下的页面 才将cookie发送给服务器,如果未指定默认就是 /
cookie.Path = "/P01cookiedemo/";

// 设置了Expires 参数则表示告诉浏览器将cookie存入硬盘中,
cookie.Expires = DateTime.Now.AddDays(3);

//设置了Domain,告诉浏览器只有请求www.c11.com 域名下的页面才将cookie发送给服务器
cookie.Domain = "www.c11.com";

//4.0 将cookie添加到响应报文头中发送回浏览器保存,
Response.Cookies.Add(cookie);

4、 获取浏览器通过请求报文头 发送给服务器的cookie 值的 写法,uid:为cookie的键,可以由程序员自己定义
if(Request.Cookies["uid"]!=null)
{
Request.Cookies["uid"].Value;
}

5、清除cookie 代码写法:
HttpCookie cookie = Request.Cookies["uid"];
cookie.Expires = DateTime.Now.AddYears(-1);
cookie.Path = "/P01cookiedemo/";

Response.Cookies.Add(cookie);

5、单点登录


2、GMT,UTC时间 零时区的时间,东区 + 小时 西区:-小时
linux系统默认的时间就是UTC时间

3、Session
1、存在服务器端,存在网站进程的内存中
2、在初次设置session的时候,会在session池中实例化一个session对象,以asp.net_sessionid 的值作为key,同时会将key以cookie的形式
保存到客户端的内存中
3、session的作用域只存在当前浏览器的会话中,当浏览器关闭以后就会将sessionid丢失,但是服务器的session对象要20分钟以后才会回收


清除Session:context.Session[“name”]=null;
context.Session.Abandon();

4、在web.config中的 <system.web> 节点下添加 <sessionState timeout="5" cookieless="true"></sessionState> 手动修改session的相关设置
注意点:
aspx编译完成以后会自动实现接口IRequiresSessionState,所以能够直接使用session
但是一般处理程序,需要程序员自己手动实现system.Web.SessionState.IRequiresSessionState接口 ,才能够使用session对象

如果浏览器禁用了cookie,则可以使用
设置:<sessionState cookieless="true"></sessionState> 来开启url传入sessionid到服务器,但是不推荐使用

 

Web--->>>Cookie与Session

标签:

原文地址:http://www.cnblogs.com/ruyudeshui/p/4397417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!