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到服务器,但是不推荐使用