Vorrei aggiungere l'autorizzazione a un controller, per più ruoli contemporaneamente.
Normalmente sarebbe simile a questo:
[Authorize(Roles = "RoleA,RoleB,RoleC")]
public async Task<ActionResult> Index()
{
}
Ma ho memorizzato i miei ruoli in consts, poiché potrebbero cambiare o essere estesi a un certo punto.
public const RoleA = "RoleA";
public const RoleB = "RoleB";
public const RoleC = "RoleC";
Non posso farlo, poiché la stringa deve essere nota in fase di compilazione:
[Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)]
public async Task<ActionResult> Index()
{
}
C'è un modo per aggirare il problema?
Potrei scrivere una const che contiene semplicemente "RoleA, RoleB, RoleC" - ma non mi piacciono le stringhe magiche e questa è una stringa magica. Cambiare il nome di un ruolo e dimenticare di cambiare la stringa combinata sarebbe un disastro.
Sto usando MVC5. L'identità e il ruolo di ASP.NET sono noti in fase di compilazione.