ASP.NET操作Cookie詳細追加、修正、削除

2628 ワード

Cookieは、複数の形式のCookiesも使用される場合があり、一部のウェブサイトがユーザのアイデンティティを識別するためにユーザのローカル端末に格納されているデータ(通常暗号化されている)を指す.RFC 2109に定義される.これはネットビュー会社の元従業員Lou Montulliが1993年3月に発明したものです.サーバは、Cookiesが含む情報の任意性を利用して、HTTP伝送中の状態を判断するために、これらの情報をフィルタリングし、頻繁に維持することができる.Cookiesの最も典型的な応用は、登録ユーザーがすでにウェブサイトにログインしているかどうかを判定することであり、ユーザーは次回このウェブサイトにアクセスする際にユーザー情報を保持してログイン手続きを簡素化するかどうかを提示される可能性があります.これらはCookiesの機能です.もう一つの重要な応用場面は「ショッピングカート」のような処理です.ユーザーは、最終支払時に情報を抽出するためにCookiesに書き込まれる同じWebサイトの異なるページで異なる商品を選択する場合があります.Cookieは、ユーザーが次回サーバとのセッションにログイン情報を保持することができ、言い換えれば、次回同じサイトにアクセスすると、ユーザー名とパスワードを入力する必要がなくログインしていることに気づく(もちろん、ユーザーが手動でCookieを削除することは排除されない).また、一部のCookieは、ユーザーがセッションを終了したときに削除され、プライバシーを効果的に保護することができます.
//  
protected void Button1_Click(object sender, EventArgs e)
{
  HttpCookie cookie=new HttpCookie("MyCook");//      Cookie   
  DateTime dt=DateTime.Now;
  TimeSpan ts = new TimeSpan(0, 0, 1,0,0);//     1  
  cookie.Expires = dt.Add(ts);//      
  cookie.Values.Add("userid", "userid_value");
  cookie.Values.Add("userid2","userid2_value2");
  Response.AppendCookie(cookie);
  //   Cookie     
  //Response.Write(cookie.Value);//   :userid=userid_value&userid2=userid2_value2 
}
//  
protected void Button2_Click(object sender, EventArgs e)
{
  // HttpCookie cokie = new HttpCookie("MyCook");//   
  if (Request.Cookies["MyCook"]!=null)
  {
    //Response.Write("Cookie    userid  :" + Request.Cookies["MyCook"]["userid"]);//  
    //Response.Write("Cookie    userid2  " + Request.Cookies["MyCook"]["userid2"]);
    Response.Write(Request.Cookies["MyCook"].Value);//      
  }
}
//  Cookie
protected void Button3_Click(object sender, EventArgs e)
{
  //      Cookie  
  HttpCookie cok = Request.Cookies["MyCook"];
        
  if (cok != null)
  {
    //  Cookie     
    cok.Values["userid"] = "alter-value";
    cok.Values.Set("userid", "alter-value");

    // Cookie       
    cok.Values.Set("newid", "newValue");
    Response.AppendCookie(cok);
  }      
}
//  Cookie
protected void Button4_Click(object sender, EventArgs e)
{
  HttpCookie cok = Request.Cookies["MyCook"];
  if (cok != null)
  {
    if (!CheckBox1.Checked)
    {
      cok.Values.Remove("userid");//     userid  
    }
    else
    {
      TimeSpan ts = new TimeSpan(-1, 0, 0, 0);
      cok.Expires = DateTime.Now.Add(ts);//    Cookie,            
    }
    Response.AppendCookie(cok);
  }
}