ちょっと体調も戻ってきたところで、久しぶりにプログラミングメモ。
ASP.NETでクッキー(Cookie)を使う、しかも二階建ての場合。
例えば、CookieNameという名前でCookieを作成して、その中でvalue1=true, value2=falseとか扱いたい場合。
「新館」で言いますと、下の画面のように「サムネールで表示」チェックボックスを作っておき、表示を切り替えるようにしたいわけですが、これをCookieで閲覧者側に保存しておこうというわけです。
Cookieの読み出しは、こんな感じ。普通は、Page_Loadイベントハンドラの中に書きます。
string cookie_name = "CookieName";
string value_name = "Value";
bool value = false;
if (Request.Cookies[cookie_name] != null)
{
if (Request.Cookies[cookie_name][value_name] != null)
{
value = Request.Cookies[cookie_name][value_name].Equals("true", StringComparison.OrdinalIgnoreCase);
// valueを使って何かする
}
}
Cookieの値を変えたい場合には、こんな感じ。ページが出力されるまでのタイミングで。
Response.Cookies[cookie_name][value_name] = value? "true" : "false";
Response.Cookies[cookie_name].Expires = DateTime.Now.AddDays(7);
このように、有効期間は二階建ての方には設定できず、あくまでもCookie名で指定されるCookie全体に適用されるようです。
ということで、ほとんど備忘録的ですが…。
コメント