为了为特定角色授权 Controller , Controller 类需要以下属性:
[Authorize(Roles = "SampleRole")]
这需要在 Controller 上硬编码角色名称,这似乎不是一个灵活的解决方案。
我的问题是,是否可以在 web.config 中为该角色指定值并在 Controller 中使用该键?
<appSettings>
<add key="SampleRoleKey" value="SampleRole" />
...
</appSettings>
在 Controller 中,
[Authorize(Roles = "SampleRoleKey")]
另一个问题是,我们可以使用强类型角色来授权 Controller 吗?
最佳答案
使用带有 public const-s 的静态类:
public static class Roles
{
public const string SampleRoleKey = "SampleRole";
}
创建一个从 AuthorizeAttribute 派生的自定义 MyAuthorizeAttribute 以拥有一个可以处理字符串数组的属性,然后:
[MyAuthorize(MyRoles = new[]{ Roles.SampleRoleKey }]
关于asp.net-mvc-3 - MVC 配置授权角色值和强类型角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15998385/