分享一下cookies操作(增、删、改、查)小经验
2011-11-17 15:40
162 查看
前段时间在做一个 SSO(Single Sign On),用cookies去存Token
网站保存用户信息这类都用的cookies
以前觉得cookies操作无非就那么几种,但是“杯具事件”还是很多的
下面分享一下对cookies的简单操作
-----------------------------------------------------操作-----------------------------------------------------------
[b]1.添加cookies(用cookies方式去做sso,用户信息保存,修改都会依赖cookies)[/b]
添加cookies一般不会有人出错的。。。记得添加Expires就行
2.修改cookies( 在程序中难免会操作,对用户信息的修改,更新数据库后,也会修改cookies,为了修改后的显示)
方法一:
新建个测式页。。再取cookies中的name,结果:wilson Z;
这是这次项目中遇到的“杯具”事件之一,当这样修改cookies时,在更新方法中再取这个名为Porschev的cookies,
name的值还为Zhong Wei而非wilson Z,页面显示也不对(己排除页面缓存原因,更新也确实没有成功)
修改方法一:
再次测式,结果正确,取出name的值为:wilson Z,页面显示也正确
自己理解:得让以前存入过期时间为20min的cookies失效
3.得到cookies (这个最简单,为求方法完整,还是写上吧)
4.删除cookies (删除cookies网上有很多方法,但是删除不是都能管用)
方法一:(最常用的一个删除cookies方法)
在项目中测式,删除部分cookies失败,很无语,于是换一种方法
测式:删除成功
自己理解:方法一只能删除提当前Response中的cookies,不对完成删除掉客端的cookies,用遍历cookies的方式可以
方法一定对,己经过项目实际验证,观点不一定正确,如理解有误,请各位指正!!
网站保存用户信息这类都用的cookies
以前觉得cookies操作无非就那么几种,但是“杯具事件”还是很多的
下面分享一下对cookies的简单操作
-----------------------------------------------------操作-----------------------------------------------------------
[b]1.添加cookies(用cookies方式去做sso,用户信息保存,修改都会依赖cookies)[/b]
#region##添加cookeis ///<summary> /// 添加cookeis ///</summary> public void AddCookies() { HttpCookie cookies = new HttpCookie("Porschev"); cookies["name"] = "Zhong Wei"; cookies["sex"] = "1"; cookies.Expires = DateTime.Now.AddMinutes(20); Response.Cookies.Add(cookies); } #endregion
添加cookies一般不会有人出错的。。。记得添加Expires就行
2.修改cookies( 在程序中难免会操作,对用户信息的修改,更新数据库后,也会修改cookies,为了修改后的显示)
方法一:
#region##修改cookies ///<summary> /// 修改cookies ///</summary> public void ModCookies() { HttpCookie cookies = Request.Cookies["Porschev"]; cookies["name"] = "wilson Z"; } #endregion
新建个测式页。。再取cookies中的name,结果:wilson Z;
这是这次项目中遇到的“杯具”事件之一,当这样修改cookies时,在更新方法中再取这个名为Porschev的cookies,
name的值还为Zhong Wei而非wilson Z,页面显示也不对(己排除页面缓存原因,更新也确实没有成功)
修改方法一:
#region##修改cookies ///<summary> /// 修改cookies ///</summary> public void ModCookies() { HttpCookie cookies = Request.Cookies["Porschev"]; cookies["name"] = "wilson Z"; //加上下面一句 Response.Cookies["Porschev"].Expires = DateTime.Now.AddMinutes(-1); } #endregion
再次测式,结果正确,取出name的值为:wilson Z,页面显示也正确
自己理解:得让以前存入过期时间为20min的cookies失效
3.得到cookies (这个最简单,为求方法完整,还是写上吧)
#region##得到cookies ///<summary> /// 得到cookies ///</summary> public void GetCookies() { HttpCookie cookies = Request.Cookies["Porschev"]; string name = cookies["name"]; //通过key取出对应value,多key同理取 } #endregion
4.删除cookies (删除cookies网上有很多方法,但是删除不是都能管用)
方法一:(最常用的一个删除cookies方法)
#region##删除cookies ///<summary> /// 删除cookies ///</summary> public void DelCookeis() { if (Request.Cookies["Porschev"] != null) { HttpCookie cookies = new HttpCookie("Porschev"); cookies.Expires = DateTime.Now.AddDays(-1); Response.Cookies.Add(cookies); } } #endregion
在项目中测式,删除部分cookies失败,很无语,于是换一种方法
#region##删除cookies ///<summary> /// 删除cookies ///</summary> public void DelCookeis() { foreach (string cookiename in Request.Cookies.AllKeys) { HttpCookie cookies = Request.Cookies[cookiename]; if (cookies != null) { cookies.Expires = DateTime.Today.AddDays(-1); Response.Cookies.Add(cookies); Request.Cookies.Remove(cookiename); } } } #endregion
测式:删除成功
自己理解:方法一只能删除提当前Response中的cookies,不对完成删除掉客端的cookies,用遍历cookies的方式可以
方法一定对,己经过项目实际验证,观点不一定正确,如理解有误,请各位指正!!
相关文章推荐
- 分享一下cookies操作(增、删、改、查)小经验
- 分享一下cookies操作(增、删、改、查)小经验
- 分享一下cookies操作(增、删、改、查)小经验
- 分享一下cookies操作(增、删、改、查)小经验
- 如何备考CCIE/HCIE,一个源自于美帝学员的问题,我会在下午的直播分享会上为大家分享一下经验
- 程序员不能坐太久哦!终于了断了多年的痔疮困扰! 和大家分享一下经验!
- 今天我的Windows Phone 7 HTC HD7 手机 升级 NoDo 了 分享一下经验
- 分享一下require js的使用经验,零经验学requirejs
- 给大家分享一下避免MySQL替换逻辑SQL的坑爹操作(链接)
- 本人实习一个月经验分享(一)-------ubuntu操作和svn版本控制
- 今天试了试Hibernate middlegen 工具,分享一下经验,呵呵
- 分享一下学习Oracle的经验
- 分享一下本人的PR提升经验
- 分享一下自己用的SQLite数据库密码操作小工具(含源码)
- 今天我的Windows Phone 7 HTC HD7 手机 升级 NoDo 了 分享一下经验
- mysql数据库常见的优化操作总结(经验分享)
- 分享项目经验:一个净水器的显示操作面板开发
- poj Gone Fishing 枚举加贪心 当初做的很纠结啊!!终于A了,与大家分享一下经验
- 使用ShareSDK实现分享功能,微信分享 提示“分享操作正在后台运行” 然后闪了一下屏幕