1

さまざまなサイト (red.domain.com、blue.domain.com など) にデプロイする単一の Web アプリケーションを作成しています。さまざまな役割がさまざまなサイトにアクセスできるようにしたい (たとえば、"red" 役割は red.domain.com にアクセスできるようにする)。

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

これを合理化する方法について誰かアイデアがありますか? 正しい役割を自動的に適用する IIS サイト自体で作成できる設定でしょうか。

どうもありがとう。

4

1 に答える 1

1

依存性注入に適した場所である可能性があります。StructureMapのようなライブラリを使用すると、web.configで型マッピングを定義できます(サイトごとに1つのweb.configがあると想定しています)。

したがって、RedControllerBlueControllerが両方とも共通のインターフェースを実装している場合は、次のIColourfulControllerようになります。

<!-- red web.config-->
 <DefaultInstance
      PluginType="IColourfulController, [assembly name]"
      PluggedType="RedController,  [assembly name]" />

<!-- blue web.config-->
 <DefaultInstance
      PluginType="IColourfulController, [assembly name]"
      PluggedType="BlueController,  [assembly name]" />

// when you need the controller
IColourfulController controller = 
    ObjectFactory.GetInstance<IColourfulController>();

どちらのサイトもコントローラーを取得するために同じコードを使用できますが、web.configはそれが青か赤かを示します。

于 2012-05-04T21:44:33.780 に答える