15

私の調査によると、Cookie を作成して有効期限を設定しないと、ブラウザーを閉じたときに有効期限が切れます。

だから私はこのようなクッキーを作成しました:

Response.Cookies.Set(new HttpCookie("MyKey", "X"));

しかし、ブラウザーを閉じてから再度開くと、次の式は true になります。

Request.Cookies["MyKey"] != null

ブラウザ セッションの終了時に Cookie の有効期限を切れるようにするにはどうすればよいですか?

注: 私の目的では、Cookie の代わりに静的データを使用するのが理想的です。しかし、私の理解では、ASP.NET はさまざまな理由で再起動する可能性があり、この設定を失った場合、現在のユーザーの下からラグが引き出される可能性があります。

4

3 に答える 3

18

この問題は、Stober が説明したとおりのようです。HttpCookie.ExpiresプロパティをDateTime.MinDateに設定するか、プロパティをまったく設定しないことで、ブラウザー セッションの終了時に Cookie の有効期限が切れるように設定できます。

ただし、少なくとも設定を中断したところから Chrome がピックアップされるようにすると、ブラウザを閉じたときにブラウザ セッションが必ずしも終了するとは限らないようです。Chrome ブラウザを閉じてから再度開くと、セッションが終了していないかのように、中断したところから再開します。これには、セッションの終了時に有効期限が切れる Cookie セットを引き続き使用することが含まれます。

同じコードを FireFox で試してみました。ブラウザーを閉じて再度開くと、予想どおり、Cookie の有効期限が切れました。

したがって、いくつかの一般的な規則はありますが、最終的にこの動作は完全にブラウザ次第です。

于 2013-07-21T16:50:24.143 に答える