AUTORIZZAZIONE
IDENTIFICARE I RUOLI DELL’APPLICAZIONE
Sino adesso abbiamo individuato due macro-gruppi, gli utenti anonimi e gli utenti autenticati. Tuttavia, anche per gli utenti autenticati bisogna fare una distinzione, cioè utenti che possiedono un certo ruolo che gli consenta di fare certe operazioni e che sono precluse a tutto il resto degli utenti dato che non possiedono quel ruolo.
Un utente cha ha associato il ruolo di Teacher tramite claim può compiere tutte le operazioni che compie un utente base. Comunque ci dovrà pur essere un utente che assegna questi ruoli, ad esempio da utente base a Teacher. Questo è il ruolo dell’amministratore.
Un utente può assumere più ruoli e ad un amministratore può essere tolto questo ruolo perché magari cambia azienda e ritornare ai privilegi di un utente base.
ASSEGNARE UN RUOLO AD UN UTENTE CON LO USER MANAGER
Vediamo come assegnare i ruoli sfruttando l’oggetto User Manager.
Il ruolo è assegnato all’utente con dei Claim.
Vediamo il codice necessario per assegnare un ruolo tramite lo User Manager.
Questo codice è stato implementato nel metodo OnPostAsync del ViewModel Register.cshtml.cs. Ti invito a scaricare il codice da GitHub e guardare come l’ho implementato.
CREARE UN FORM PER LA GESTIONE DEI RUOLI
Vediamo come si presenterà l’interfaccia utente di assegnazione e revoca di un ruolo.
Ti invito a consultare il codice che realizza tale funzionalità che trovi sotto la directory Pages/Admin/Users. Ti riporto un estratto dei principali metodi, assegnazione e revoca.
ELENCARE GLI UTENTI A CUI E’ STATO ASSEGNATO UN RUOLO
Vediamo come elencare gli utenti a cui è stato assegnato un ruolo con l’oggetto User Manager. Consulta il file commentato Users.cshtml.cs. L’assegnazione dei ruoli come detto è una prerogativa amministrativa, fai il login con le seguenti credenziali per far comparire il link dei ruoli.
email:admin@example.com
password:Administrator1!
LINK AL CODICE SU GITHUB
Scaricare il codice della sezione18 oppure il ramo master o clonare il repository GITHUB per avere a disposizione tutte le sezioni nel tuo editor preferito.
Scrivi un commento