0

カミソリを使用する ASP.net MVC 3 アプリがあり、デフォルトの AccountController を使用して現在のユーザーをログアウトすると、セキュリティの問題が発生しました。ログアウト (_LogoutPartial ビュー) をクリックすると、ログオン ページにリダイレクトされます。わかりましたが、ブラウザーで [戻る] をクリックすると、Web アプリケーションに戻ることができ、ログオンを求められません。

パラメータ付きのルートは次のとおりです。

routes.MapRoute(
                "Person", // Route name
                "Person/{profileName}/{action}/{id}", // URL with parameters
                new { controller = "Person", action = "Index", id = UrlParameter.Optional } // defaults
            );
//example http://localhost:1946/Person/JoeBlack/ListTeamMembers

セッションで {profileName} がまだアクティブであり (?)、コントローラーへの呼び出しを許可しているようです。ただし、コントローラーアクション {ListTeamMembers} には [Authorize()] 属性があるため、ユーザーをどのように許可するのかわかりません...

4

1 に答える 1

1

ブラウザの [戻る] ボタンを押すと、ブラウザのキャッシュから最後のページが取得されます。サーバーがヒットすることはありません。ユーザーは認証されなくなりました。これは、何らかのアクションを実行しようとして HTTP 要求を送信すると、ログオン ページにリダイレクトされることを意味します。これを防ぐ方法は、認証されたすべてのページをクライアント ブラウザのキャッシュから除外することです。このジョブのカスタム NoCache アクション フィルターを使用できます。

于 2012-05-21T06:30:24.170 に答える