- PR -

ASP.NETのクッキー有効期限

1
投稿者投稿内容
つる
会議室デビュー日: 2004/06/15
投稿数: 6
お住まい・勤務地: 多摩
投稿日時: 2004-10-15 17:59
いつも拝見させていただいております。

ASP.NETのWebアプリで、ログイン画面でログイン処理を行った際にクッキーを作成し
ブラウザを閉じた際に、ログイン時に作成したクッキーを削除しようとしています。

[ブラウザを閉じるとクッキーを破棄]は、どのようにすればよいのでしょうか?

CGIやJavaScriptでは、クッキー作成時に有効期限(expires)を省略すれば
自動的にブラウザを閉じるとクッキーを破棄になると思うのですが
ASP.NETでは有効期限(expires)の省略を認めていないと思います。

Window.closeなど、いろいろ試したのですがダメでした・・・。

ご指導願います。


小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2004-10-15 18:26
引用:

つるさんの書き込み (2004-10-15 17:59) より:
CGIやJavaScriptでは、クッキー作成時に有効期限(expires)を省略すれば
自動的にブラウザを閉じるとクッキーを破棄になると思うのですが
ASP.NETでは有効期限(expires)の省略を認めていないと思います。



ASP.NETから設定するクッキーの有効期限は省略できたと思いますが。
認めていないという結論に達したのはなぜでしょうか。
つる
会議室デビュー日: 2004/06/15
投稿数: 6
お住まい・勤務地: 多摩
投稿日時: 2004-10-15 18:45
返信ありがとうございます。

省略ができないと思った理由は2つあります。

1つは、省略すると実際[C:\Documents and Settings\xxxx\Cookies](Win2000)に
クッキーが作成されないことです。

もう1つは過去ログ(↓)で、同様の現象があったためです。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4074&forum=7&2

本当は省略できるのでしょうか?

ソースは↓です。
Dim Cookie As HttpCookie = New HttpCookie("TEST")
Cookie.Values.Add("CID", "ABC")
Response.AppendCookie(Cookie)

よろしくお願いいたします。

なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-10-15 19:02
引用:

つるさんの書き込み (2004-10-15 18:45) より:
1つは、省略すると実際[C:Documents and SettingsxxxxCookies](Win2000)に
クッキーが作成されないことです。


いや、セッションクッキーがファイルに保存されたらそれはそれでびっくりな気がしますが…そうでもないです?
つる
会議室デビュー日: 2004/06/15
投稿数: 6
お住まい・勤務地: 多摩
投稿日時: 2004-10-15 19:19
引用:

なちゃさんの書き込み (2004-10-15 19:02) より:
いや、セッションクッキーがファイルに保存されたらそれはそれでびっくりな気がしますが…そうでもないです?



返信ありがとうございます。

さきほどのソースに「有効期限:永続的保存」の[Cookie.Expires = DateTime.MaxValue]を加えて
  Dim Cookie As HttpCookie = New HttpCookie("TEST")
  Cookie.Values.Add("CID", "ABC")
  Cookie.Expires = DateTime.MaxValue
  Response.AppendCookie(Cookie)
とすると、[C:\Documents and Settings\xxxx\Cookies]に作成されます。
作成されたものをテキストエディタで開くと、「"CID", "ABC"」が書かれているので
作成したものだと思います・・・。

なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-10-15 19:47
引用:

つるさんの書き込み (2004-10-15 19:19) より:
さきほどのソースに「有効期限:永続的保存」の[Cookie.Expires = DateTime.MaxValue]を加えて
  Dim Cookie As HttpCookie = New HttpCookie("TEST")
  Cookie.Values.Add("CID", "ABC")
  Cookie.Expires = DateTime.MaxValue
  Response.AppendCookie(Cookie)
とすると、[C:Documents and SettingsxxxxCookies]に作成されます。


セッションクッキーではないのですから当然ファイルに保存されないと困りますよね?
セッションクッキーはブラウザを閉じると消える(というか、起動しているブラウザ内でのみ有効)なのですから、ファイルに保存されては困りますよね?(もちろん終了時にできるだけ確実に消すとかはできるかもしれませんが)

一度、できているというCGIやJavaScriptで作成したセッションクッキーが、本当にファイルに保存されているのか確かめてみたらどうでしょう?
つる
会議室デビュー日: 2004/06/15
投稿数: 6
お住まい・勤務地: 多摩
投稿日時: 2004-10-15 20:07
申し訳ないです。
CGIとJavaScriptで試してみます。

自分はクッキーのこと、かなり勉強不足だったと思います。
もう少し勉強してみます。
1

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