無効にしたブラウザーがページをキャッシュできないようにするために必要なASP.NETコードを明確に参照したいと思います。HTTPヘッダーとメタタグに影響を与える方法はたくさんありますが、さまざまなブラウザを正しく動作させるには、さまざまな設定が必要であるという印象を受けます。すべてのブラウザで機能し、バージョンを含む特定のブラウザに必要なコードを示すために、コードの参照ビットをコメント化しておくと非常に便利です。
この問題については膨大な量の情報がありますが、各メソッドの利点と、特定の手法がより高いレベルのAPIに取って代わられているかどうかを説明する優れたリファレンスはまだ見つかりません。
私は特にASP.NET3.5 SP1に興味がありますが、以前のバージョンの回答も得られるとよいでしょう。
このブログエントリFirefoxとIECachingの2つの重要な違いは、HTTPプロトコルの動作の違いについて説明しています。
次のサンプルコードは、私が興味を持っている種類のものを示しています
public abstract class NoCacheBasePage : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
DisableClientCaching();
}
private void DisableClientCaching()
{
// Do any of these result in META tags e.g. <META HTTP-EQUIV="Expire" CONTENT="-1">
// HTTP Headers or both?
// Does this only work for IE?
Response.Cache.SetCacheability(HttpCacheability.NoCache);
// Is this required for FireFox? Would be good to do this without magic strings.
// Won't it overwrite the previous setting
Response.Headers.Add("Cache-Control", "no-cache, no-store");
// Why is it necessary to explicitly call SetExpires. Presume it is still better than calling
// Response.Headers.Add( directly
Response.Cache.SetExpires(DateTime.UtcNow.AddYears(-1));
}
}