c#中对cookie的几种操作(增、删、改、查)

news/2024/5/18 16:39:37 标签: cookie, cookies

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

#region##
    ///<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的方式可以
 


http://www.niftyadmin.cn/n/1688976.html

相关文章

layui框架——弹出层layer

两种调用方法&#xff1a; 1、引用独立的layer.js文件 引入好layer.js后&#xff0c;直接用即可 <script src"layer.js"></script> <script> layer.msg(hello); </script> 2、调用layui中的layer模块 layui.use(layer, function(){var …

label两端对齐

<style type"text/css">/*文本两端对齐*/.text-justify {float: left;text-align: justify;width: 200px;}.span-justify {display: inline-block;width: 100%;} </style><label class"text-justify">用 户 名&#xff1a;<span clas…

javascript 异步原理

浏览器只给javascript的执行分配了一个线程&#xff0c;因此它是单线程的&#xff0c;并不能并发执行。javascript的异步处理方法并不是真正的异步&#xff0c;javascript异步的实现是靠事件驱动来实现的 一、在浏览器端 浏览器端的javascript实现了两个很重要的API&#xff0…

javascript—数组去重

方法一 双层for循环&#xff0c;将数组元素压入新数组 Array.prototype.distinctfunction(){var arrthis,result[];var j;for(let i0;i<arr.length;i){for(j0;j<result.length;j){if(arr[i]result[j])break;}if(jresult.length)result.push(arr[i])}return result; } v…

jsplum入门

一、基本知识 Source&#xff1a;源节点Target&#xff1a;目标节点Anchor&#xff1a;锚点Endpoint&#xff1a;端点&#xff0c;连接的起点或终点Connector&#xff1a;连线&#xff0c;连接两个节点的直观表现Overlay&#xff1a;装饰连接器的组件&#xff0c;类似箭头之类G…

第二章 控制器——ASP.NET MVC高级编程

IIS Express和ASP.NET开发服务器 Visual Studio2013及以上版本包括IIS Express&#xff0c;这是IIS的本地开发版本&#xff0c;可以用来在一个随机的空闲端口上运行网站。IIS Express实际上是IIS的优化版本&#xff0c;优化后使它更适用于开发。 ASP.NET MVC的默认路由约定&am…

【JS】JS中return;、return true、return false之间有什么区别?

刚学习JS就糊涂了&#xff0c;经过了好长一段时间的研究终于明白了return&#xff1b;、return true、return false在js中的区别了&#xff01; 区别 &#xff1a;一、返回控制与函数结果&#xff0c;语法为&#xff1a;return 表达式;语句结束函数执行&#xff0c;返回调用函数…

解决html网页缩放问题

当我们学习过div布局的时候&#xff0c;你肯定会有这样的疑问&#xff1a;为什么别人的网页无论怎么缩放都不会影响它的想对位置&#xff0c;而我的页面在使用浏览器对页面进行放大缩小的时候&#xff0c;有时候会出现错位&#xff0c;或者边框无法吻合。将页面缩小到最小时&am…