ASP.NET MVC 4 アプリのセキュリティ保護と新しい AllowAnonymous 属性をご覧ください。
MVC アプリケーション (任意のバージョン) を保護するためにルーティングまたは web.config ファイルを使用することはできません。MVC アプリケーションを保護するためにサポートされている唯一の方法は、Authorize 属性を適用することです...
見積もり
MVC はルートを使用し、URL を Web フォーム、PHP、および従来の Web サーバーなどの物理的なファイルの場所にマップしません。したがって、web.config を使用すると、サイトに確実にセキュリティ ホールが開きます。
これが将来変更される場合は、製品チームから連絡がありますが、今のところ例外なくルールです。
例:
デフォルトの ASP.Net MVC プロジェクト (インターネット/イントラネット) から始めます。
以下を追加して web.config を編集します。
<location path="Home">
<system.web>
<authoirzation>
<deny users="*">
</authoirzation>
</system.web>
</location>
プロジェクトを実行します。デフォルトではデフォルトルートが使用され、/Home/Index
コンテンツが表示されます。デフォルト テンプレートを変更せずに web.config をバイパスするだけです。なんで?ASP.Net パイプラインは、要求された URL を web.config で指定された場所と比較しているためです。ただし、承認イベントがパイプラインで実行された後、ルーティングが行われ (デフォルト ルーティングまたはカスタム ルーティング)、制限されていると思われる領域へのアクセスが許可されます。
さらに、すべての MVCRedirect()
は、承認パイプライン イベントの後にルーティングが行われるため、同じセキュリティ対策もバイパスします。
アプリを起動すると、http://:22888 ではなく http://:22888/Home/Index?ReturnUrl=%2f にリダイレクトされます。
デフォルトのテンプレートを使用している場合、認可は を保存し、値が であるreturnUrl
にリダイレクトします。が の場合、を追加しないようにのコードを更新できます。/Home/Index
%2f
/
RedirectToAction
AccountsController
returnUrl
/