国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c# 對cookies(增、刪、改、查)的操作方法

2020-01-24 03:26:00
字體:
來源:轉載
供稿:網友

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

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

方法一定對,己經過項目實際驗證,觀點不一定正確,如理解有誤,請各位指正!!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九龙县| 榆社县| 鄂伦春自治旗| 西城区| 玛多县| 缙云县| 德江县| 长寿区| 儋州市| 文水县| 揭阳市| 清丰县| 昭苏县| 雅安市| 天津市| 泗水县| 西充县| 岢岚县| 张家界市| 泰州市| 泸溪县| 阳原县| 吉林市| 迭部县| 横峰县| 磴口县| 凭祥市| 淮安市| 祥云县| 黎川县| 岚皋县| 旌德县| 江陵县| 沧州市| 屏东市| 肃北| 桂平市| 城市| 内江市| 安图县| 水城县|