asp.net-mvc-3 - MVC 配置授权角色值和强类型角色

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

为了为特定角色授权 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/

相关文章:

asp.net-mvc-3 - 使用 onlyIf 进行验证不起作用

javascript - 发送到 javascript 的字符串中的文本编码错误

javascript - 在 MVC3 中,在母版页或子页中使用 javascript

c# - 如何在mvc中导出文本文件?

asp.net - 如何重写代码以在 Asp Net Web Api 中使用具有依赖注入(inject)的 IAuthorizationFilter 而不是具有服务位置的 AuthorizeAttribute?

jquery - 返回部分 View 的 Controller 操作会在授权失败时插入登录页面

asp.net-mvc - ASP.NET MVC 5 [Authorize] 属性在浏览器中生成登录弹出窗口而不是重定向到 302 登录页面

asp.net - MVC3 何时使用区域?

c# - 如何编写 Web Api 单元测试,我应该从 UserManager 获取信息

基于 Asp.Net Web Api token 的授权,无需 OWIN 和 AspNet.Identity