方法 : Cookie を読み取る
更新 : 2007 年 11 月
Cookie によって、Web アプリケーションは履歴やユーザー設定などのユーザー固有の情報を格納できます。Cookie は、要求および応答と共に Web サーバーとクライアント間でやり取りされる少量のテキストです。Cookie には、ユーザーがサイトを訪問するたびに Web アプリケーションが読み取ることができる情報が格納されます。
ブラウザは、ユーザーのシステムで Cookie を管理します。Cookie はページの要求と共にサーバーに送信され、Cookies コレクションを公開する HttpRequest オブジェクトの一部としてアクセスできます。読み取ることができるのは、現在のドメインまたはパスにあるページが作成した Cookie だけです。
手順
Cookie を読み取るには
Cookie の名前をキーとして使用し、Cookies コレクションから文字列を読み取ります。
UserSettings という Cookie を読み取り、次に Font というサブキーの値を読み取る例を次に示します。
If (Request.Cookies("UserSettings") IsNot Nothing) Then Dim userSettings As String If (Request.Cookies("UserSettings")("Font") IsNot Nothing) Then userSettings = Request.Cookies("UserSettings")("Font") End If End If
if (Request.Cookies["UserSettings"] != null) { string userSettings; if (Request.Cookies["UserSettings"]["Font"] != null) { userSettings = Request.Cookies["UserSettings"]["Font"]; } }
コードのコンパイル方法
この例には、次の項目が必要です。
ASP.NET Web ページ。
「方法 : Cookie を記述する」に説明されているように、事前に UserSettings という名前で書き込んだ Cookie。
堅牢性の高いプログラム
セキュリティ上の理由により、読み取ることができるのは同じドメインに属しているページが設定した Cookie だけです。Path プロパティが設定されている場合、この Cookie はドメインのこのパスのサブフォルダとページだけで使用できます。
特定の Cookie の値を読み取るときは、その Cookie が存在し、値が設定されていることを確認してください。それ以外の場合は、例外が発生します。
Cookie のすべての値は String 型で格納されるため、Cookie 値を別のデータ型で使用する場合は、適切な型に値を変換する必要があります。
セキュリティ
ブラウザは、Cookie の作成元であるサーバーにデータを送り返すことしかできません。ただし、悪意のあるユーザーが Cookie にアクセスして、そのコンテンツを読み取る危険性はあります。Cookie にはユーザー名やパスワードなどの機密情報は格納しないでください。その代わり、サーバーの機密情報を検索するのに使用できるトークンを格納します。さらに、Cookie は改変されることがあるため、Cookie のデータには、クロスサイト スクリプティング攻撃の予防策と同じ対策を講じる必要があります。詳細については、「スクリプトによる攻略の概要」を参照してください。