0

現在、MVC イントラネット Web アプリを開発しています。同じ Web アプリが複数のドメインにデプロイされます。私は Windows 認証を使用しており、アプリのローカル ドメイン内のグループに対して認証しています。特定のアクションを保護するために、コントローラ アクションを [authorize] 属性で装飾しています。

    [Authorize(Roles = @"Domain1\AppUsers")]
    public ActionResult Index()
    {
        return View();
    }

このアプリは間もなく Domain2 にデプロイされるため、承認されたすべてのコントローラー アクションを再装飾する必要があります。各ドメインに異なるコードをデプロイする必要はありません。認証属性を「ドメイン対応」にする方法はありますか?

私が考えた1つの考えは、web.configでドメイン名を設定することでした

<appSettings>
<add key="AppDomainSecurityContext" value="Domain1"/>
</appSettings>

そして、それをコントローラーに呼び出して、文字列として保存します

string AppDomainSecurityContext = System.Web.Configuration.WebConfigurationManager.AppSettings["AppDomainSecurityContext"].ToString();

しかし、その変数をauthorize属性に入れるにはどうすればよいですか...

[Authorize(Roles = "" + AppDomainSecurityContext + "\AppUsers")]

うまくいきません。より良い方法はありますか?提案?

4

1 に答える 1