0

どこかに欠けている設定があるかもしれませんが、この問題には完全に唖然としています。特定のユーザーが表示、編集、および削除できるコンテンツを制限するために、役割ベースのアクセス許可を使用している動的データ Web サイトがあります。ユーザーが最初にログインしてデフォルト ページにリダイレクトされると、そのユーザー ロールの正しいテーブルがすべて表示されます。使用可能なテーブルのいずれかをクリックした後、ブラウザの [戻る] ボタンをクリックすると、既定のページが次の間隔で表示されます。ユーザーの役割が指示するものに関係なく、データベース内のテーブル。私は唖然としています。なぜなら、あらゆるユーザーの役割が利用できるすべてのテーブルのビューが存在しないにもかかわらず、どういうわけか ie9 がページのこの架空のバージョンをキャッシュすることができたからです。戻る矢印がクリックされたときにデフォルト ページの page_load がトリガーされないため、これはキャッシュの問題に違いないことはわかっています。デフォルトのページを更新すると、再び正しく表示されます。

私はマスターページで作業しており、そのページの読み込みで考えられるすべての形式のキャッシュを明示的にオフにしています。

HttpContext.Current.Response.Cache.SetAllowResponseInBrowserHistory(false);
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore();
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
Response.Cache.SetValidUntilExpires(true);

注意すべきもう1つのことは、これは、サイトをff、chrome、またはsafariでテストしたときにのみie9の問題であるように見えることです。期待どおりに動作します。

4

1 に答える 1

0

セッション変数にログインするユーザーの役割を保存し、その値に基づいて必要なデータ (テーブルなど) を表示する必要があります。セッションでのユーザーの役割に基づいてデータが表示される場合、私はしません何か問題があると思います。Response.Cache.SetNoStore();また、ページロード機能で与えることでキャッシュを無効にすることもできます。

于 2013-01-05T05:00:42.007 に答える