AUTORIZZAZIONE

IDENTIFICARE I RUOLI DELL’APPLICAZIONE

NET CORE

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.

Docenti
Docenti

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.

Admin
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.

Più ruoli

ASSEGNARE UN RUOLO AD UN UTENTE CON LO USER MANAGER

Vediamo come assegnare i ruoli sfruttando l’oggetto User Manager.

RUOLI

Il ruolo è assegnato all’utente con dei Claim.

Claim

Vediamo il codice necessario per assegnare un ruolo tramite lo User Manager.

Codice

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.

Interfaccia ruoli

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.

RUOLI
Assegnazione ruolo
Revoca ruolo

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!

Elencare gli utenti in un ruolo

LINK AL CODICE SU GITHUB

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.