ASP.NET実践:Cookieの削除

1527 ワード

ユーザーコンピュータのCookieを直接削除することはできません.ただし、Cookieの有効日を過去の日付に設定することで、ユーザーブラウザにCookieの削除を指揮することができます.ユーザーがCookieに設定されたドメインまたはパスに設定されたページにアクセスすると、ブラウザは期限切れのCookiesを検出して削除します.
ヒント:Cookiesセットを呼び出すRemoveメソッドは、サーバ側でCookieをセットから削除できますが、Cookieはクライアントに送信されません.したがって,この方法では既存のCookieはクライアントから削除されない.

Cookieに過去の日付を割り当てる

  • Cookieが存在するかどうかを検出し、存在する場合、同じ名前の新しいCookieを作成します.
  • 新しいCookieの有効日を過去の時間に設定します.
  • はこの新しいCookieをCookies集合オブジェクトに追加する.次のコード例では、Cookieに過去の日付を設定する方法を示します.
    
    
    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という名前)は、[ASP.NET実践:Cookieに書き込む]で例示したように.

  • 堅牢なプログラミング


    セキュリティ上の理由で、同じドメインのページに設定されたCookiesのみを読み込むことができます.CookieのPathプロパティが設定されている場合、このCookieはパスで指定された同じドメインのページおよびサブディレクトリでのみ使用できます.
    特定のCookieの値を読み込むときは、まずCookieが存在し、割り当てられているかどうかをテストします.そうしないと、NullReferenceExceptionの異常が発生します.

    セキュリティ


    ブラウザは、Cookieを最初に作成したサーバにデータを返信することしかできません.しかしながら、悪意のあるユーザは、Cookiesにアクセスしてコンテンツを読み取ることができる.ユーザ名やパスワードなどの機密情報はクッキーに保存しないでください.サーバ上で機密情報を検索するために使用できる記号を格納します.また、Cookiesは改ざんされることもあるので、Cookieのデータは、Webサイトにまたがるスクリプト攻撃を防止するためのポリシーを使用してテストする必要があります.詳細については、[ASP.NET実践:Webアプリケーションで逆スクリプト開発を防止する].