栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

c# 对cookies(增、删、改、查)的操作方法

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c# 对cookies(增、删、改、查)的操作方法

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

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

复制代码 代码如下:
  #region##添加cookeis
    ///


    /// 添加cookeis
    ///

    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
///


/// 修改cookies
///

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
    ///


    /// 修改cookies
    ///

    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
    ///


    /// 得到cookies
    ///

    public void Getcookies()
    {

        Httpcookie cookies = Request.cookies["Porschev"];
        string name = cookies["name"];   //通过key取出对应value,多key同理取

    }
    #endregion

4.删除cookies (删除cookies网上有很多方法,但是删除不是都能管用)

方法一:(最常用的一个删除cookies方法)

复制代码 代码如下:
   #region##删除cookies
    ///


    /// 删除cookies
    ///

    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
    ///


    /// 删除cookies
    ///

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

方法一定对,己经过项目实际验证,观点不一定正确,如理解有误,请各位指正!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/127442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号