次の方法で共有


方法 : Cookie を削除する

更新 : 2007 年 11 月

ユーザーのコンピュータから Cookie を直接削除することはできません。ただし、Cookie の有効期限を過去の日付に設定すると、Cookie を削除するようにユーザーのブラウザを誘導できます。ユーザーが次回 Cookie を設定したドメインまたはパス内のページを要求すると、ブラウザは Cookie が期限切れであることを確認して削除します。

ms178195.alert_note(ja-jp,VS.90).gifメモ :

Cookies コレクションの Remove メソッドを呼び出すと、サーバー側のコレクションから Cookie が削除されるため、Cookie がクライアントに送信されなくなります。ただし、このメソッドはクライアントに既に存在している Cookie は削除しません。

  1. Cookie が存在するかどうかを判定し、存在する場合は、同じ名前の新しい Cookie を作成します。

  2. Cookie の有効期限を過去の日時に設定します。

  3. 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 アプリケーションをスクリプトによる攻略から保護する」を参照してください。

参照

処理手順

方法 : Cookie を記述する

方法 : Cookie を読み取る

概念

ASP.NET の Cookie の概要

Web アプリケーションのセキュリティに関する基本的な対策

ASP.NET の状態管理の概要