方法 : Cookie を削除する
更新 : 2007 年 11 月
ユーザーのコンピュータから Cookie を直接削除することはできません。ただし、Cookie の有効期限を過去の日付に設定すると、Cookie を削除するようにユーザーのブラウザを誘導できます。ユーザーが次回 Cookie を設定したドメインまたはパス内のページを要求すると、ブラウザは Cookie が期限切れであることを確認して削除します。
メモ : |
---|
Cookies コレクションの Remove メソッドを呼び出すと、サーバー側のコレクションから Cookie が削除されるため、Cookie がクライアントに送信されなくなります。ただし、このメソッドはクライアントに既に存在している Cookie は削除しません。 |
Cookie に過去の有効期限を割り当てるには
Cookie が存在するかどうかを判定し、存在する場合は、同じ名前の新しい Cookie を作成します。
Cookie の有効期限を過去の日時に設定します。
Cookie を Cookies コレクション オブジェクトに追加します。
Cookie に過去の有効期限を設定するコード例を次に示します。
If (Not Request.Cookies("UserPreferences1") Is Nothing) Then Dim myCookie As HttpCookie myCookie = New HttpCookie("UserPreferences1") myCookie.Expires = DateTime.Now.AddDays(-1D) Response.Cookies.Add(myCookie) End If
if (Request.Cookies["UserSettings"] != null) { HttpCookie myCookie = new HttpCookie("UserSettings"); myCookie.Expires = DateTime.Now.AddDays(-1d); Response.Cookies.Add(myCookie); }
コードのコンパイル方法
この例には、次の項目が必要です。
ASP.NET Web ページ。
「方法 : Cookie を記述する」に説明されているように、事前に UserSettings という名前で書き込んだ Cookie。
堅牢性の高いプログラム
セキュリティ上の理由により、読み取ることができるのは同じドメインに属しているページが設定した Cookie だけです。Path プロパティが設定されている場合、この Cookie はドメインのこのパスのサブフォルダとページだけで使用できます。
特定の Cookie の値を読み取るときは、その Cookie が存在し、値が設定されていることを確認してください。それ以外の場合は、例外が発生します。
セキュリティ
ブラウザは、Cookie の作成元であるサーバーにデータを返送することしかできません。ただし、悪意のあるユーザーが Cookie にアクセスして、そのコンテンツを読み取る危険性はあります。Cookie にはユーザー名やパスワードなどの機密情報は格納しないでください。その代わり、サーバーの機密情報を検索するのに使用できるトークンを格納します。さらに、Cookie は改変されることがあるため、Cookie のデータには、クロスサイト スクリプティング攻撃の予防策と同じ対策を講じる必要があります。詳細については、「方法 : HTML エンコーディングを文字列に適用して Web アプリケーションをスクリプトによる攻略から保護する」を参照してください。