Я хотел бы добавить авторизацию к контроллеру сразу для нескольких ролей.
Обычно это будет выглядеть так:
[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()
{
}
Есть ли способ обойти проблему?
Я МОЖЕТ написать const, который просто содержит "RoleA, RoleB, RoleC", но мне не нравятся магические строки, и это волшебная строка. Изменение имени роли и забывание изменить комбинированную строку было бы катастрофой.
Я использую MVC5. Идентификатор ASP.NET и роль известны во время компиляции.