你的位置:首页 > ASP.net教程

[ASP.net教程]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.com21 22   //二级域名:www.baidu.com,zhidao.baidu.com mp3.baidu.com23 24   //三级域名:zhidao.s1.baidu.com ,但是一般只是用到二级域名,三级域名对于网站的seo优化回不明显25 26   //单点登录:实现一次登录以后再当前域名下面的其他站点可以实现免登录27 28 cookie.Domain = ".c12.com"; //将cookie的Domain设置成顶级域名以后再其所有的二级域名下的网站都可以共享此cookie29 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主机的cookieHttpCookie cookie = new HttpCookie("name", "");cookie.Expires = DateTime.Now.AddYears(-1);//表示清除path=/01cookie/的cookiecookie.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:

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


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