質問
サーバーのクロックがクライアントのクロックより進んでいる場合、以下のコードは機能しますか?
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1))
編集:私が尋ねる理由は、当社の Web アプリの 1 つで、一部のユーザーが、以前にそのマシンを使用していたユーザーのページ (アカウント番号など) を見ていると主張しているためです。しかし、私たちはこれが起こらないようにするために上記の行や他の行を使用します。
解決
この質問 Web ページがキャッシュされていないことを確認する方法について説明します。Web ページがすべてのブラウザーでキャッシュされないようにするには、いくつかのプロパティを設定する必要があるようです。
他のヒント
この問題は、フォーム フィールドに入力されたデータをブラウザが記憶していることが原因である可能性があります。これは次のようにオフにできます。
<input autocomplete="off">
私の知る限り、ブラウザはローカル時計と照合して有効期限をチェックするため(タイムゾーンは考慮されますが)、クライアントの時計が不正確な場合、質問内のコードは期待どおりに機能しない可能性があります。最も一般的に、これは時刻が正しいように見えても、間違ったタイムゾーンに設定されている場合に発生します。つまり、UTC タイムスタンプが実際には数時間ずれていることを意味します。
たとえば、はるかに古いタイムスタンプを設定してみることもできます。0000 1970 年 1 月 1 日 GMT (エポック)
あなたが持っているコードはサーバー側のキャッシュで動作するはずですが、次のようにしてより明示的に無効にすることができます。
Response.Cache.SetNoServerCaching();
所属していません StackOverflow