Session与Cookies

开发工具与关键技术: MVC
作者:邱盈盈
撰写时间:2020/8/17
当网络请求处于无状态的时候,浏览器与服务器的对话将会利用到Session和Cookies来交汇。当服务器第一次接收到浏览器的请求的时候,就会在内存中开辟一片区域来创建Session,用于保存与当前浏览器的会话内容,并为该Session分配一个SessionID。服务器在响应浏览器的请求同时把SessionID返回给浏览器,浏览器便会在Cookies中保存SessionID,服务器每次的请求都会携带对应的SessionID,以保证请求与响应的一致性。

1.使用Session保存数据编程写法:
Session[“key”]=data;
其中“key”为数据保存在session中的名称,获取数据时需要使用与保存对应的名称才能获取到数据。data为需要保存的数据

2.获取Session中数据编程写法:
var data=session[“key”];
由于所有 保存到session中的数据都是以object类型存在的,所以在我们获取session中的数据时需要对数据进行转换

Session存储与获取数据实例:
Session与Cookies

3.Cookie保存数据的方法与Session有所不同,首先它需要声明一个Cookie对象,并设置名称——HttpCookie cookie = new HttpCookie(“test”); 在获取的时候需要使用与设置对应的名称来获取。

Cookie保存数据:string name=“张三”;
cookie[“name”]=name;

cookie的有效期是可设置的:cookie.Expries = DateTime.Now.AddDays(1);
AddDays后面的数字便是cookie有效期天数。

最后需通过响应把声明的cookie返回到浏览器的cookies中

3.Cookie获取数据:
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[“test”];

判断获取的 cookie 是否为空
string name = “”;
If(cookie != null){
name = System.Web.HttpContext.Current.Server.UrlDeCode(cookie[“name”]);
}

注:由于 Cookie 只能保存字符串类型的数据,所以保存在 Cookie 中的字符串有可能会被编码,所以获取数据的时候需要解码,不能直接获取