我想一次为多个角色的控制器添加授权。
通常情况如下:
[Authorize(Roles = "RoleA,RoleB,RoleC")]
public async Task<ActionResult> Index()
{
}
但是我将我的角色存储在const中,因为它们有时可能会更改或扩展。
public const RoleA = "RoleA";
public const RoleB = "RoleB";
public const RoleC = "RoleC";
我不能这样做,因为必须在编译时知道该字符串:
[Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)]
public async Task<ActionResult> Index()
{
}
有办法解决这个问题吗?
我可以编写一个仅包含“ RoleA,RoleB,RoleC”的const-但我不喜欢魔术字符串,这是一个魔术字符串。更改角色名称而忘记更改组合字符串将是一场灾难。
我正在使用MVC5。在编译时就知道ASP.NET身份和角色。
您是否使用公共常量字符串RoleA =“ RoleA”; 还是如您所写的那样?
—
Mukesh Modhvadiya 2014年