状態管理

書き込み

HttpCookie cookie = new HttpCookie("id_admin_"); 
cookie.Value = model.id_admin_.ToString(); 
//cookie.Domain = ".XXXX.com"; 
HttpContext.Current.Response.Cookies.Add(cookie); 

cookie = new HttpCookie("name_admin_"); 
//漢字が入る場合がありますので、必ずエンコードしてください。 
cookie.Value = HttpUtility.UrlEncode(model.name_admin_); 
//cookie.Domain = ".XXXX.com"; 
HttpContext.Current.Response.Cookies.Add(cookie); 

cookie = new HttpCookie("guid"); 
cookie.Value = Guid.NewGuid().ToString(); 
//cookie.Domain = ".XXXX.com"; 
HttpContext.Current.Response.Cookies.Add(cookie);

留意点:

  • ページとCookieは同じドメインに存在いていないなら、ページのところにCookieの値を取得できません。
  • Domain + Path 同じのCookieはクライアントの同じファイルに格納され、「*」で分割しています。
  • Cookie毎、一行目はCookieの名前、二行目は値、三行目はDomain + Pathの文字列、このCookieのブロックを示します。ほかの行にCookieのその他の情報が保存されています。
  • Domainプロパティのデフォルト値は、現在URLのドメイン部分となります。Cookieを送出するページはサイトのどのディレクトリにあるかと関係ありません。たとえば、http://www.XXXX.com/index.aspx ページにCookieを送出しても,Domainプロパティのデフォルト値はwww.XXXX.comとなります。もちろんこの値はプログラミングによって、変更できます。
  • CookieをResponseのCookieプロパティに追加すれば、Cookieをクライアントへ送信できます。

修正

直接にCookieを修正することができません。修正したい場合、同じ名前のCookieを作成し、クライアント上の古いCookieを上書きする方法で、値を修正します。

呼び出し

HttpContext.Current.Request.Cookies["guid"].Value

留意点:

  • Domain と Pathプロパティが読み込めません、Domainはいつも "" である、Pathはいつも / である

削除

Asp.netでCookieをクリアします:

 CookieはクライアントのPCに格納されていますので、直接に削除することができませんが、ブラウザに頼んで、削除することができます。削除する方法は、Cookieの有効期間を前に設定したら、“削除”できます。

HttpCookie aCookie; 
string cookieName; 
int limit = Request.Cookies.Count; 
for (int i = 0; i < limit; i++) 
{ 
  cookieName = Request.Cookies[i].Name;  
  aCookie = new HttpCookie(cookieName); 
  //Cookieの有効期間を一日前にすることによって、Cookieを無効にすることができます。
  aCookie.Expires = DateTime.Now.AddDays(-1); 
  Response.Cookies.Add(aCookie); 
} 

まとめ

留意点:

  • エンドユーザーのPC上に格納するから、削除、有効期間きれの限りにずっと有効
  • Expiresプロパティを設定しないなら、セッション情報の一部になり、ブラウザプロセス/セッションと同じライフタイムとなります。ブラウザと閉じる際に、Cookieがクリアされます。Cookieがメモリ上に格納されています。


本当にほしかったのはこういうブログだったんだ

(画像の文字列を入力して下さい)

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:32:40 (1628d)

e[NȂECir Yahoo yV LINEf[^[Ōz500~`I
z[y[W ̃NWbgJ[h COiq@COsیI COze