- PR -

Cookieを有効にしているかどうかを知るには

投稿者投稿内容
hnk
常連さん
会議室デビュー日: 2003/03/19
投稿数: 46
投稿日時: 2006-08-07 14:54
いつも、お世話になっております。

VB.NETにて開発してますが、
クライアントが使用しているブラウザがCookieを使えるかどうかを
知るということは、できると思いますが、

さて、Cookieを使えるブラウザでありながら、
Cookieを無効にしているか(または有効にしている)
を知る方法はあるのでしょうか?

ヒントまたは回答をご存知の方、
ご教授のほど、宜しくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-07 15:04
引用:

hnkさんの書き込み (2006-08-07 14:54) より:

VB.NETにて開発してますが、クライアントが使用しているブラウザがCookieを使えるかどうかを知るということは、できると思いますが、さて、Cookieを使えるブラウザでありながら、Cookieを無効にしているか(または有効にしている)を知る方法はあるのでしょうか?


知るための '確実な方法' はなかったと思います。
そのため、<SCRIPT>、<NOSCRIPT> 要素を使って出力内容を変えるのが望ましいかと思います。
何のために判断が必要かは存じませんが、通常は上記の 2 要素で事足りるでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
hnk
常連さん
会議室デビュー日: 2003/03/19
投稿数: 46
投稿日時: 2006-08-07 15:38
判断理由は、

Cookie利用可能ブラウザ
↓YES        ↓NO
↓         Cookie未使用の処理

Cookieを有効にしている
↓YES        ↓NO
Cookie利用の処理  Cookie未使用の処理

のためです。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-07 16:04
仮に判断するプロパティか何かがあったとしてもそれはブラウザが送信する情報をもとに
判断しているだろうし、確実な情報ではないですね。

サポートしてない場合と、してるけど無効にしている場合とで処理が同じなら、
実際にクッキーを送りつけてみて、それを取得できたら「Cookie利用の処理」にするとか。

引用:
Cookie利用可能ブラウザ
↓YES        ↓NO
↓         Cookie未使用の処理

Cookieを有効にしている
↓YES        ↓NO
Cookie利用の処理  Cookie未使用の処理

分岐の方法ではなくて、どうしてもサーバ側で知らなきゃいけない理由は何か、つまり「Cookie利用の処理」と
「Cookie未使用の処理」は何であって、差異は何なのか、というのが知りたいです。
hnk
常連さん
会議室デビュー日: 2003/03/19
投稿数: 46
投稿日時: 2006-08-08 08:42
実際にクッキーを送りつけた後、
それを取得できたか、できなかったか、
という判断をすることは可能なのでしょうか?

それが可能なら、解決への近道になります。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-08-08 09:42
クッキーの取得・設定自体は、すでにできてるんですよ…ね?
単に前回書き込んだはずの値と、比較すればいいだけでは?
hnk
常連さん
会議室デビュー日: 2003/03/19
投稿数: 46
投稿日時: 2006-08-08 13:55
皆さん、貴重なアドバイス、ご返答、本当に有難うございます。
私の方で、問題を、うまく説明できていなくて大変すみません。
今一度、問題を整理いたします。

「Cookie利用可能ブラウザ、Cookieを無効にしている」の場合にて、
Cookieを発行しようとしたさいに、エラーがおきます。

エラー内容:
ページに必要なセッション状態は、現在使用できません。 セッション状態の有効期限が切れているか、クライアントが有効なセッション Cookie を送信しなかったか、またはセッション状態の履歴サイズが小さすぎる可能性があります。履歴サイズを増やすか、またはセッションの有効期限を延長してください。

したがって、
1 Cookieを発行する前に、Cookieが無効になっているかの認識が可能か?
2 Cookieを発行した際に、Cookieが無効になっているかの認識が可能か?
(エラーの回避は可能か、この場合、Cookieが発行できないことは問題ではない)
の方法を解決策だと思ってます。

お騒がせしており、申し訳ございませんが、
なにとぞ宜しくお願いいたします。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-08 20:28
引用:
「Cookie利用可能ブラウザ、Cookieを無効にしている」の場合にて、
Cookieを発行しようとしたさいに、エラーがおきます。

どんなコードの箇所でおきるんですか?エラーというのは例外?
「発行しようとしたさいに」ですか?でしたらその例外をcatchしたら利用不可と判断すればいいのでは?

引用:
エラー内容:
ページに必要なセッション状態は、現在使用できません。 セッション状態の有効期限が切れているか、クライアントが有効なセッション Cookie を送信しなかったか、またはセッション状態の履歴サイズが小さすぎる可能性があります。履歴サイズを増やすか、またはセッションの有効期限を延長してください。

これもコードが書いてありませんがどんなコードなのですか?見たところセッション関係のようですが、
セッションは普通クッキーに依存しますからセッション状態は参照できないでしょうね。
全部クッキーレスセッションにしてしまうというのも手ですね。

引用:
1 Cookieを発行する前に、Cookieが無効になっているかの認識が可能か?
2 Cookieを発行した際に、Cookieが無効になっているかの認識が可能か?
(エラーの回避は可能か、この場合、Cookieが発行できないことは問題ではない)
の方法を解決策だと思ってます。

前に、は不可能と考えるべきでしょうね。

javascriptで判断してユーザーに知らせてるページは結構あるみたいですけどね。

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