Web--->>>Cookie与Session
2015-04-07 08:40
246 查看
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到服务器,但是不推荐使用
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的区别
- <Web> Session和Cookie
- java_web初学笔记之<Session与Cookie>
- Cookieless Session In WebService
- flex的与web cookie、session通信的方式
- [保存]C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- 跨域读取Cookie和session之HttpWebRequest另类方法
- web开发之cookie与session
- 跨域读取Cookie和session之HttpWebRequest另类方法(网站API开发)
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 <configuration>\<system.web>\<httpModules> 节中包括..
- 只能用于会话状态的EnableSessionState设置为true时,无论是在配置文件或Page指令。还请确保在<configuration>\的<system.web>\的<httpModules>在应用程序配置节包括System.We
- 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- Warning Cannot send session cookie - headers already sent...问题的解决(PHP的UTF-8 BOM引起的问题) ->转
- 关于web中的session以及cookie验证的问题
- WCF常见问题(1) -- WebService/WCF Session Cookie
- 跨域读取Cookie和session之HttpWebRequest另类方法(网站API开发)
- 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- Session, Cookie, Web.config中的cookieless总结