2012-05-04 5 views
1

私は、異なるサイト(たとえば、red.domain.com、blue.domain.comなど)に配備する単一のWebアプリケーションを作成しています。別のサイトにアクセスするためには異なる役割が必要です(たとえば、「赤い」役割はred.domain.comにアクセスできます)。サイト/ URLに基​​づくASP.NET MVCロール認可

現在、コントローラ全体の認証を使用しています([Authorize(Roles = "red")]など)。アプリケーションをサイトにデプロイするときは、各コントローラの役割を「赤」から「青」に変更する必要があります。これはばかげているようです。

誰かが私がいかに効率化できるかについてのアイデアはありますか?おそらく、自動的に正しい役割を適用するIISサイト自体で作成できる設定ですか?

ありがとうございました。

+1

これらの異なる展開シェアは同じデータベースですか? –

+0

Nope - 別のデータベース。 – Gabe

+1

次に、同じロール名を使用している場合はどうなりますか? –

答えて

1

依存性注入に適しています。 StructureMapのようなライブラリを使用すると、web.configファイルで型マッピングを定義することができますあなたがRedControllerBlueController持っている場合、両方が共通のインターフェースを実装することを、

ので(私はあなたが各サイトに1つのweb.configを持っていると仮定している)IColourfulControllerそれを

両方のサイトでコントローラを取得するのに同じコードを使用できますが、web.configは青か赤かを示します。

関連する問題