- PR -

ASP.NET cookieの使用方法

1
投稿者投稿内容
たくみ
常連さん
会議室デビュー日: 2003/03/05
投稿数: 20
投稿日時: 2003-03-28 18:13
いつもお世話になっています。

ASP.NETでの開発でログインされた情報をクッキー情報として
クライアントに保存しようとしているのですが、どうしても
保存が出来ません。

これがその時のソースコードなんですが、どこが悪いのか
判断が出来ません。

--------------------------------------------------
Dim MyCookie As New HttpCookie("kt_clientdata1")
MyCookie.Value = strValue
Response.Cookies.Add(MyCookie)
--------------------------------------------------

何か根本的に間違ってるような気もするのですが
どうぞその方法を伝授願います。


うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2003-03-28 21:09
色々いわれてたりしますが、Cookieはやっぱり必要ですね。

1:Dim Cookie As HttpCookie = New HttpCookie("TEST")
2:Cookie.Values.Add("CID", "12345678")
3:Cookie.Expires = DateTime.MaxValue ' 永続的保存クッキー
4:Response.AppendCookie(Cookie)

1行目は宣言部です。ここは、たくみさんのソースも問題ありません。

2行目で、実際のクッキーの値を代入してますが、構文がちょっと違います。

このソースで言うと「Cookie」という名前のオブジェクトは、いわば構造体の
ような物に相当します。なので、その中に格納されるそれぞれの値には名前が
つけれます。名前を付けると「クッキー名.値名」でアクセスできるため、
オブジェクト的な処理が可能になってます。

3行目ではクッキーオブジェクトのプロパティ「Expires」を設定しています。
クッキーには生存期間がありますが、ここでは永続的に保存しててほしいので、
DateTime.MaxValue(9999/12/31?)を指定しています。

で、4行目「Response.AppendCookie(Cookie)」これが無いと実際のクッキーの
保存は行われません。ADO.NETのデータセットの更新みたいな感じになってます。

恐らく、たくみさんのソースでは4行目が無いから保存がされてないのだろうと
思います。上のコードは実際にショッピングサイトで使ってますので動作保証です(笑)

連載では触れる予定が無かったのですが、COOKIEのことも書こうかな・・・(笑)
ご参考になれば幸いです。

_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
たくみ
常連さん
会議室デビュー日: 2003/03/05
投稿数: 20
投稿日時: 2003-03-28 22:00
今晩は、うりゅう様
お返事ありがとうございます。

ハイ、そう思います、やはりCookieも必要だと思ってしまう時ありますから(^^

------------------------------------------
1:Dim Cookie As HttpCookie = New HttpCookie("TEST")
2:Cookie.Values.Add("CID", "12345678")
3:Cookie.Expires = DateTime.MaxValue ' 永続的保存クッキー
4:Response.AppendCookie(Cookie)
------------------------------------------

うりゅうさんの伝授して頂いた方法も一度試してみたと思っていたんですが
なんとも、実は3行目の記述方法を見逃していました。
で、早速試してみましたら、無事格納できました。

連載も欠かさず拝見させて頂いてます。
是非是非、Cookieの連載もして頂けると嬉しいです
痒いところに手が届く。。。みたいな感じで(笑)

どうもありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)