現在、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")]
うまくいきません。より良い方法はありますか?提案?