MVC2 と VS2010 を使用しています。Web アプリケーションを作成しましたが、ページを離れた後にブラウザがページを再訪問するのを停止したいと考えています。これは、公共のコンピューターを使用していてその場を離れた人が安心できるようにするためです。次のユーザーが戻るボタンを使用して最初の使用ページを表示できるというシナリオは望ましくありません。[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")] を試してみましたが、これは正常に動作しているようで、Web ページの期限切れが表示されます。しかし、ブラウザの戻るボタンをもう一度押すと、ページが表示されます。
1 に答える
1
私自身、ブラウザのバック状況を防ぎたいという非常によく似た状況にあり、いくつかの異なる解決策を調査しました. 最初で最悪なのは、ユーザーがブラウザの [戻る] ボタンをクリックすると、元のページに戻る Java スクリプト機能です。それは問題を解決するのではなく隠しますが、それについて言及したと思いました。コードは次のとおりです。
<script type="text/javascript" language="javascript">
function disableBackButton() {
window.history.forward()
}
disableBackButton();
window.onload = disableBackButton();
window.onpageshow = function (evt) { if (evt.persisted) disableBackButton() }
window.onunload = function () { void (0) };
</script>
これは、Firefox、Chrome、および IE で正常に動作します。これをマスターページに配置するだけです。多くの人は、これはよく知られたブラウザの動作などに干渉するため、これは行うべき方法ではないと言うでしょう。
したがって、私の 2 番目の提案は、私がここで見たものです: ASP.NET Web サイト全体のブラウザー キャッシュを無効 にします。
別のアイデアは、ページまたはセッショントークンを渡し、アクションでトークンをチェックすることです-エラーページへの無効な再ルーティングの場合。これにより、少なくとも新しいユーザーが前のページで何かを行うのを防ぐことができます.
あなたがそれを解決した場合、私はあなたがこれをどのように解決したかを知りたいです。
于 2012-06-27T22:32:48.833 に答える