3

私は見回して、Cookieの有効期限を使用するか、有効期限を指定せずにブラウザの終了時にそれらを削除するかのいずれかで、クライアントブラウザでCookieを削除する方法を見つけました。

Web アプリで Cookie を設定して、特定の時間が経過した後に削除する必要がありますが、ブラウザーが終了またはクラッシュした場合も同様です。これは可能ですか?

前もって感謝します!

4

1 に答える 1

4

これは可能ですか?

いいえ、これはそのままではできません。クッキーには次の 2 種類があります。

  1. 永続的:expires特定の日付にプロパティが設定されたもの => これらの Cookie はクライアント ブラウザーにファイルとして保存され、ブラウザーの再起動後も存続します。クライアントが実行する各リクエストに沿って、有効期限が切れる予定の日付に達するか、サーバーが明示的に削除するまで送信されます。
  2. セッション Cookie:expiresプロパティが設定されていないもの。それらは現在のブラウザ プロセスのメモリ内にのみ存在しますが、有効期限が切れることはありません (ブラウザが閉じられるか、サーバーが明示的に削除するまで)。

created atしたがって、シナリオでは、値に日付を含めることでセッション Cookie を使用できます。次に、リクエストごとにサーバーでこの値を読み取り、現在の日付と比較できます。必要な期間が経過した場合は、Cookie を期限切れにして、後続の要求で送信されないようにします。ちなみに、この手法は ASP.NET の Forms Authentication モジュールで使用されています。web.config でタイムアウトを指定し、スライド式の有効期限を使用するかどうかを決定します。次に、リクエストごとに、サーバーはタイムアウトに達したかどうかをチェックして、Cookie を無効にするか更新するかを決定します (スライド式の場合)。有効期限が有効になっています)。

于 2012-08-15T19:47:10.680 に答える