リンクを参照してください
すべての破壊コードの後でもセッション変数の値が残るのはなぜですか?
上記の問題は、ブラウザがページのキャッシュされたバージョンを表示しているため、私が作成したログイン機能が失敗することです。また、特定の制限時間内にすべての機能を実行できる理由もわかりませんが、その後実現しますそれはキャッシュされています!!
それで、
Web サイトのキャッシュ バージョンを削除する方法
また
キャッシュに私のコピーを作成しないでください!!!
c#を使用して
リンクを参照してください
すべての破壊コードの後でもセッション変数の値が残るのはなぜですか?
上記の問題は、ブラウザがページのキャッシュされたバージョンを表示しているため、私が作成したログイン機能が失敗することです。また、特定の制限時間内にすべての機能を実行できる理由もわかりませんが、その後実現しますそれはキャッシュされています!!
それで、
Web サイトのキャッシュ バージョンを削除する方法
また
キャッシュに私のコピーを作成しないでください!!!
c#を使用して
あなたができることのほとんどは、ブラウザにキャッシュさせたくないページにexpiresメタタグを追加することです
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="No-Cache, No-Store">
または、ASP.NETでPageタグを追加した後に交互に
<%@ OutputCache Duration="0" Location="none" NoStore="true" %>
C#のコードビハインド
Response.Cache.SetNoStore();
Response.Cache.SetExpires(DateTime.Now);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
詳細については、http://msdn.microsoft.com/en-us/library/06bh14hk(v = VS.100).aspxを参照してください。
ここでさらに詳細な記事http://www.mnot.net/cache_docs/
編集:Alxandrからのコメントの後に更新
クライアント側のページのキャッシュバージョンについて心配しているようです。これが真実である場合、その懸念に対処するための2つの主要な方法があります。キャッシュなし属性をHTTPヘッダーまたはページのMETAタグに追加できます。HTTPヘッダーアプローチが推奨されるアプローチです。
METAタグアプローチ
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
HTTPヘッダーアプローチ
Cache-Control: max-age=3600, must-revalidate
以下に引用するリンクは、HTTPヘッダーとMETAヘッダーに関する豊富な情報を提供します。オプションを理解し、さまざまな言語やHTTPサーバーでの実装例を確認するために読むことをお勧めします。
ドーナツ キャッシングとサーバー側のみのキャッシングにより、この問題が解決されます。穴 (ドーナツ センター) で、ユーザーのログインを検証します。無効な場合は、ログイン ページへのリダイレクト 301 を実行します。
ブラウザはそれをキャッシュにコピーします。それについて叫ぶことはそれが消えることはありません。他の場所で愚かなことをしているのでない限り、これはセキュリティ上のリスクにはなりません。セキュリティ上の問題がある場合でも、キャッシュがコピーを作成できないようにしても問題は解決しません。
だから:あなたはブラウザがキャッシュするのを防ぐことができますが、それはあなたがしたいことではありません。ブラウザは引き続きWebページのコピーをハードドライブに保存し、表示しようとはしません。それはセキュリティの問題ではありません。