最近在做ITOO高校云平台权限系统项目,高大上的权限也能落到小编的手中,这下等着小编可有得“祸害”了哈。
在转弯的地方,遇到了两个孪生姐妹session和cookie。登录最喜欢这两姐妹不过啦,最近主要负责登录和主页,所以session和cookie幸运地和被小编摆弄啦,哈哈。
简单地说Cookies用来存数据的。最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续。另一个重要应用场合是“购物车”“购票”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。
Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。
世界上没有完全相同的两片叶子,人不能双脚同时踏进同一条河流。即使是同胞姐妹,还是有差别的对吧,看看session和cookie是如何展示她们独特的个性。简单的几个特征:
1.cookie将信息保存在客户端系统的页面上,不太安全;session是将信息保存到服务器,客户不知道。
2.cookis保存的是字符串,session保存的是对象。
3.cookie因为保存在客户端,可以长期保存;session在用户会话结束后就会关闭了。
4.cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的;session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。
孪生姐妹的故事远不止这些,简单的说她们还有是如何和外界交流、之间是如何沟通的?
/// <summary> /// 保存Cookie,将session的值存到Cookie中 /// </summary> public void CreateCookie() { HttpCookie RoleId = new HttpCookie("roleId");//实例化一个新的roleId BackUserViewModel backUser=new BackUserViewModel ();//实例化一个viewmodel //将session的值转换成viewmodel形式赋值给viewmodel类型的backUser backUser = (BackUserViewModel)Session["UserInfo"]; //赋值 RoleId.Value = backUser.RoleId.ToString (); //取值 System.Web.HttpContext.Current.Response.SetCookie(RoleId); //cookie保存时间 RoleId.Expires = DateTime.Now.AddHours(1); //返回到页面cookie中 Response.AppendCookie(RoleId); }如果是cookie和页面交互的,它们的方式是类似的:
public void CreateCookie() { HttpCookie UserName = new HttpCookie("name"); UserName.Value = Request["UserCode"];//从页面获得usercode赋值给username System.Web.HttpContext.Current.Response.SetCookie(UserName); //cookie保存时间 UserName.Expires = DateTime.Now.AddHours(1); }挑战了,好像也不是很难的样子。对于这动人的两个菇凉还需要深入的交流。