czhi対cookiesの操作方法

3414 ワード

詳細出所参照:http://www.jb51.net/article/35986.htm
 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を修正し、修正後の表示のため)
方法1:
    #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、ページの表示も正しいです.
以前の預け入れ期限が20 minの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を削除するネット上では多くの方法がありますが、削除は全部使えます.)
方法1:(最も一般的な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を削除して失敗して、とても言葉がなくて、そこで1種の方法を変えます.  
    #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
測定式:削除成功
自分の理解:方法は現在のResonseの中のcookiesを削除することしかできません.お客様の端を削除するcookiesを完成しません.cookiesを遍歴する方法できっと正しいです.自分はプロジェクトの実際検証を経て、観点は必ずしも正しくないです.