2011-10-27 14 views
2

Windows認証を使用して、IIS経由でMVCサイトのルートへのアクセスをイントラネットサイトに制限したいとします。IISのMVCルートへのアクセスを制限する

コントローラまたはアクションのAuthorize属性を使用してこれを行うことはできますが、GUI 7.5(Inet Manager)が管理者に権限を付与するようにIIS 7.5の認可ルール機能を使用することをお勧めします/アドホックベースでアクセスを制限する。これは可能ですか?

既定のルーティング構成では、AdminControllerクラスまたはAdminControllerのIndexアクションにAuthorize属性を追加せずに、IISマネージャのポスト展開を介してのみhttp://server/admin(Windows認証で認証されます)をロックダウンします。

+0

Authorize属性を使用したくないとおっしゃいましたが、グループにアクセス権を与えずに、そのグループにいる人を管理したくない特別な理由はありますか?例:[Authorize(Roles = @ "MVCAdminAccess")] – Jesse

+0

デザイン時/コード時に私はグループ名を知らない。彼らは私のコントロールの外で管理され、維持されています。そして、ハードコーディングよりもむしろこれを制御するguiを持つことはいいでしょう。 – Plymouth223

+0

あなたはそれをハードコードする必要があると誰が言いますか?グループをWeb設定から引き出すことができなかった理由はありませんか? – Jesse

答えて

2

ベストプラクティスについては、authorize属性に固執してください。承認ルールの問題は、URLベースであり、MVCでは複数のURLが同じ場所に移動することがあるため、可能であればURLではなくコントローラレベルでセキュリティを確保することをお勧めします。

+0

真実ですが、ほとんどのサイトマップはURLベースのセキュリティが完全に受け入れられる解決策となるような方法で定義され、分離されると思います。さらに、私はコードでグループを定義するというアイデアが気に入らない(具体的にはドメインだけでなく、インフラストラクチャの変更があればグループ自体も)。 IIS経由でセキュリティを確保することは合理的なアプローチのようでした。 – Plymouth223

関連する問題