【问题标题】:MVC configure Authorize Roles value and strongly typed roleMVC 配置授权角色值和强类型角色
【发布时间】:2013-04-06 13:49:31
【问题描述】:

为了授权一个特定角色的控制器,控制器类需要以下属性:

[Authorize(Roles = "SampleRole")]

这需要在 Controller 上硬编码角色名称,这似乎不是一个灵活的解决方案。 我的问题是,是否可以在 web.config 中为该角色指定值并在控制器中使用该键?

<appSettings>
    <add key="SampleRoleKey" value="SampleRole" /> 
    ...
</appSettings>

在控制器中,

[Authorize(Roles = "SampleRoleKey")]

另一个问题是,我们可以使用强类型角色来授权控制器吗?

【问题讨论】:

    标签: asp.net-mvc-3 authorize-attribute


    【解决方案1】:

    使用带有 public const-s 的静态类:

    public static class Roles
    {
        public const string SampleRoleKey = "SampleRole";
    }
    

    创建一个从 AuthorizeAttribute 派生的自定义 MyAuthorizeAttribute 以具有可以处理字符串数组的属性,然后:

    [MyAuthorize(MyRoles = new[]{ Roles.SampleRoleKey }]
    

    【讨论】:

    • 谢谢,这很有帮助。我找到了另一个使用枚举的解决方案here
    • 对不起,我已经修正了答案(这只是一个例子)。
    • @user1014639 - 太有帮助了,你不能给 Peter Kiss 投票吗?
    猜你喜欢
    • 2014-05-08
    • 2010-10-21
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    相关资源
    最近更新 更多