Sto sviluppando un'applicazione Webforms ASP.NET con pagine che visualizzano informazioni basate sul livello di autorizzazione dell'utente autenticato (molto tipico). Scriverò un semplice esempio del problema che sto affrontando:
Poniamo che voglio avere una pagina con 4 pulsanti:
1- "OnlyForAdmins". 2- Pulsante "OnlyForManagersAndAdmins" 3- Pulsante "Ospite" 4- pulsante "autenticato"
A seconda del livello di autorizzazione del visitatore, devono essere visualizzati uno o più pulsanti. In questo momento nel codice dietro i pulsanti vengono gestiti nel modo seguente:
public void Page_Load(object sender, EventArgs e)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
Athenticated.Visible = true;
if (HttpContext.Current.User.IsInRole("Admins"))
OnlyForAdmins.Visible = true;
if (HttpContext.Current.User.IsInRole("Manager") || HttpContext.Current.User.IsInRole("Admins"))
OnlyForManagersAndAdmin.Visible = true;
}
Mentre funziona, onestamente penso che questo approccio sia piuttosto inflessibile, dovendo aggiungere più "se" per ogni nuovo ruolo che presento.
Mi chiedo se esistano approcci per gestire questo tipo di problemi. Sarei grato se qualcuno potesse illuminarmi.
Grazie.