转载

Cookie和Session 简单介绍

cookie

1、cookie是存在客户端(浏览器)的进程内存中和客户端所在的机器硬盘上

2、cookie只能能够存储少量文本,大概4K大小

3、cookie是不能在不同浏览器之间共享

1 添加Cookie  2 //1.0 在服务器端实例化cookie对象  3   4 HttpCookie cookie = new HttpCookie("name", name);  5   6 //2.0  设置cookie在浏览器端有效时间为2分钟,注意:此时浏览器就会将cookie存入到其所在的硬盘(等待时间到期以后才消失)  7   8 cookie.Expires = DateTime.Now.AddSeconds(120);  9  10 //3.0 Path ="/" 表示当前浏览器请求此网站的任何页面都会将有效cookie传入给服务器 11  12 cookie.Path = "/01cookie/"; //指定当前cookie只有在浏览器访问01cookie文件下下的所有页面才传入服务器 13  14 //4.0  设置Domain 表示当前cookie只有在当前设置好的域名下才有效 15  16     //注意:如果没有指定Domain 的情况下,asp.net会智能的读取当前url中的主机 17  18     //实现单点登录的简单方式可以设置cookie的Domain 为顶级域名 19  20     //顶级域名 .baidu.com 21  22     //二级域名:www.baidu.com,zhidao.baidu.com  mp3.baidu.com 23  24     //三级域名:zhidao.s1.baidu.com ,但是一般只是用到二级域名,三级域名对于网站的seo优化回不明显 25  26     //单点登录:实现一次登录以后再当前域名下面的其他站点可以实现免登录 27  28 cookie.Domain = ".c12.com"; //将cookie的Domain设置成顶级域名以后再其所有的二级域名下的网站都可以共享此cookie 29  30 //5.0 通过Response.Cookies 将cookie对象发送给浏览器保存 31  32 Response.Cookies.Add(cookie); //底层就是向相应报文头中 添加指令 set-cookie:name = admin;Expires UTC时间

获取Cookie的值 :

if (Request.Cookies["name"] == null)  {      Response.Write("<script>alert('登录状态已经失效,请重新登录');window.location='login.aspx'</script>");  }

删除Cookie:

//清除cookie思路,一定是将cookie的过期时间设置为当前时间以前的某个时间点  //清除 path=/下的并且doamin曲子url主机的cookie  HttpCookie cookie = new HttpCookie("name", "");  cookie.Expires = DateTime.Now.AddYears(-1);  //表示清除path=/01cookie/的cookie  cookie.Path = "/01cookie/";  Response.Cookies.Add(cookie); //set-cookie :Expires:2013-4-11

Session:

1、存在服务器端,存在网站进程的内存中

2、在初次设置session的时候,会在session池中实例化一个session对象,以asp.net_sessionid 的值作为key,同时会将key以cookie的形式

保存到客户端的内存中

3、session的作用域只存在当前浏览器的会话中,当浏览器关闭以后就会将sessionid丢失,但是服务器的session对象要20分钟以后才会回收

4、在web.config中的 <system.web> 节点下添加 <sessionState timeout="5" cookieless="true"></sessionState> 手动修改session的相关设置

注意点:

aspx编译完成以后会自动实现接口IRequiresSessionState,所以能够直接使用session

但是一般处理程序,需要程序员自己实现接口IRequiresSessionState ,才能够使用session对象

如果浏览器禁用了cookie,则可以使用

设置: <sessionState cookieless="true"></sessionState> 来开启url传入sessionid到服务器,但是不推荐使用

添加Session:

//将当前name的值存入session中  context.Session["name"] = name;

获取Cookie:

(string)Session["name"]

删除Cookie:

//负责清除session  context.Session["name"] = null;  context.Session.Abandon();    取消当前会话

在一般处理程序中要使用session  要实现 System.Web.SessionState. IRequiresSessionState 接口

正文到此结束
Loading...