我正在创建一个使用表单身份验证的MVC应用程序。我正在针对Active Directory进行身份验证,因此创建了自定义的RoleProvider。我的应用程序只涉及一小部分角色,迄今为止我一直在web.config的appSettings部分中定义这些角色:
<appSettings>
<add key="DirectorRole" value="Domain\Directors" />
<add key="ManagementRole" value="Domain\Managers" />
...
</appSettings>
然而,我采用这种方法遇到了几个问题:
- 我无法在我的控制器数据注释中引用这些设置:
[Authorize(Roles = ConfigurationManager.AppSettings["DirectorRole"])]
,因为它不会编译,所以我必须再次指定组的名称:[Authorize(Roles = "Domain\\Directors")]
。 - 在我的web.config中,我想指定我的角色提供程序使用的groupsToUse,并只引用一个现有列表,而不是维护两个相同角色集的单独列表。
似乎必须有一种更好/可重用的方式来定义web.config中的角色,请问有人可以指点我正确的方向吗?