asp.net中cookie的操作(刪除,修改,尋找,賦值)

來源:互聯網
上載者:User

下面分享一下對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的方式可以

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.