前段时间在做一个 SSO(Single Sign On),用cookies去存Token

 

网站保存用户信息这类都用的cookies

 

以前觉得cookies操作无非就那么几种,但是“杯具事件”还是很多的

 

下面分享一下对cookies的简单操作

 

-----------------------------------------------------操作-----------------------------------------------------------

1.添加cookies(用cookies方式去做sso,用户信息保存,修改都会依赖cookies)

  #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操作(增、删、改、查)小经验相关推荐

  1. 表单的增 删 改 查

    django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...

  2. properties(map)增.删.改.查.遍历

    import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...

  3. python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...

    实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...

  4. PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理

    笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...

  5. Linux技术--mysql数据库增-删-改-查

    # mysql 数据库 ## 数据库的操作 ### 五个单位 * 数据库服务器   Linux或者 windows  * 数据库  * 数据表 * 数据字段 * 数据行 ### 连接数据库 ``` 1 ...

  6. 简单的php数据库操作类代码(增,删,改,查)

    数据库操纵基本流程为: 1.连接数据库服务器 2.选择数据库 3.执行SQL语句 4.处理结果集 5.打印操作信息 其中用到的相关函数有 •resource mysql_connect ( [stri ...

  7. Python 操作 Elasticsearch 实现 增 删 改 查

    Github 地址:https://github.com/elastic/elasticsearch-py/blob/master/docs/index.rst 官网地址:https://elasti ...

  8. python_操作MySQL 初解 之__类方法调用并 增-删-改-查

    文件一: 调用(sqls文件) 1 # 导入模块 2 import pymysql 3 from sqls import * 4 # 创建类 5 class KaoShi(object): 6 7 # ...

  9. list 增 删 改 查 及 公共方法

    1 # 热身题目:增加名字,并且按q(不论大小写)退出程序 2 li = ['taibai','alex','wusir','egon','女神'] 3 while 1: 4 username = i ...

  10. pyRedis - 操作指南:增/删/改/查、管道与发布订阅功能

    文章目录 1 redis docker 部署与安装 2 py - redis的使用 2.1 redis的连接 2.2 常规属性查看 2.2.2 关于删除 2.3 STRING 字符串的操作 2.4 H ...

最新文章

  1. 推荐几个MySQL大牛的博客
  2. 应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序
  3. 为什么Python类语法应该不同?
  4. 设计模式——设计模式之禅day1
  5. [科技部与你共成长] 数组循环移位
  6. 【Verilog HDL】深入理解部分语法规则的本质
  7. 一文搞懂 PyTorch 内部机制
  8. 怎么把JSP的参数:先传到JSP中,然后传给后台
  9. A+B for Matrices
  10. 暴力破解(一)——python脚本暴力破解 加密的zip压缩文件
  11. CSDN技术分享——程序员如何快速上手区块链底层技术?
  12. 陈新宇:CKafka在人脸识别PAAS中的应用
  13. MyBatis官方文档
  14. 微信小程序怎样生成体验版二维码?微信小程序怎么转化为二维码?
  15. Mac上最好的方式下载BT上的音乐
  16. Kubernetes【容器运行时】Kata Containers 与 gVisor
  17. 创造力的分类:机器学习技术在发散思维EEG数据中的应用
  18. 华为交换机基础学习命令(ensp)
  19. python变量的声明和赋值
  20. 串口调试助手 Alien V0.238

热门文章

  1. python红色的颜色表达式_50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)...
  2. c语言数据结构-算法篇之选择排序
  3. 解决Keepalived脚本启动时warning、Unsafe
  4. 【项目管理】各种常用工具图表说明和示例
  5. 信息系统项目管理师优秀论文:项目整体管理
  6. 项目整体管理:指导和管理项目工作
  7. PHP基础知识(二)
  8. SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)
  9. Eclipse中配置Tomcat虚拟路径
  10. go mod 相关的八个命令