多个域的动态MVC [授权]

时间:2013-05-10 21:47:42

标签: asp.net-mvc authentication dynamic dns authorization

我目前正在开发一个MVC内联网网络应用程序。将在多个域中部署相同的Web应用程序。我正在使用Windows授权和授权应用程序的本地域中的组。我正在使用[authorize]属性来装饰我的控制器操作以保护某些操作。

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

由于此应用程序很快将部署到Domain2,这意味着我将不得不重新调整我的所有授权控制器操作。我宁愿不必为每个域部署不同的代码。有没有办法让我的授权属性“知道域名?”

我考虑过的一个想法是在web.config中设置域名

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

然后将其调回控制器并将其存储为字符串

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

但是如何将该变量放入authorize属性...

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

不起作用。有没有更好的办法?建议?

1 个答案:

答案 0 :(得分:1)

原来有不需要来指定域名。如果你使用

[授权(Roles =“AppUsers”)]

MVC4将检查本地域控制器。