AUTENTICAZIONE E AUTORIZZAZIONE
ACCEDERE ALLA UI DI ASP.NET CORE IDENTITY
Un’area è un contenitore logico o meglio un gruppo di funzionalità affini fra loro. In questo post vedremo la funzionalità, o meglio l’interfaccia utente che Identity ci mette a disposizione per registrarci, nonché come accedere alle varie sezioni del profilo utente. Parleremo dell’oggetto User e dell’oggetto SignInManager. Modificheremo infine la View _LogingPartial.cshtml.
Adesso impostiamo la View di Layout in modo da avere la stessa interfaccia anche in Identity creando un file _ViewStart.cshtml nella struttura di directory riportata.
IMPOSTARE I CRITERI DI COMPLESSITA’ DELLA PASSWORD
Identity ci mette a disposizione un modo semplice per impostare la password. Vediamo il tutto con una slide.
A volte gli utenti scelgono password troppo prevedibili e facili da indovinare per un malintenzionato come riportato nella slide. La password comunque rispecchia i criteri di complessità impostati.
HASHING E SICUREZZA DELLA PASSWORD
La classe CommonPasswordValidator.cs la trovi sotto il percorso Model/Identity. Dopo la registrazione nella tabella AspNetUsers, che puoi consultare, non rimane traccia della password, ma viene creato un hash frutto di molte elaborazioni 10.000 per essere precisi.
ACCEDERE ALLE PROPRIETA’ DELL’UTENTE CON L’OGGETTO USER.
Al momento della registrazione avviene contestualmente anche l’autenticazione, se vado a visitare altre pagine del sito, Identity sa che sono l’utente che si è registrato con una certa e-mail e password. Infatti, se esaminiamo gli strumenti del Browser vedremo che è presente un cookie di autenticazione. Quindi il cookie di autenticazione viene emesso o dopo essersi registrati o dopo aver fatto il login. Però perché continuiamo a vedere i link accedi e login? Dobbiamo modificare la View _LoginPartial.cshtml per vedere le informazioni sull’utente.
Vediamo l’oggetto User.
È anche disponibile nei vari controller.
Anche nei nostri componenti grazie alla dependency injection riceviamo User da HttpContext.
Supponiamo che entri una richiesta HTTP, è in questo momento che ASP.NET Core crea questo oggetto HttpContext, che rappresenta questa specifica richiesta. Contiene delle informazioni che la descrivono come il percorso, il verbo GET, POST o altro, e perché no anche se contiene dei cookie, per cui questo oggetto attraversa tutti i Middleware fino ad arrivare al Middleware di autenticazione. Questo Middleware tramite il cookie di autenticazione andrà a vedere se è valido e se lo è costruirà l’identità dell’utente, inserita all’interno dell’oggetto User che così accompagna tutta la richiesta fino a che non viene prodotta una risposta per l’utente.
Noi siamo in grado di gestire quanti e quali Claim inserire all’interno di una ClaimsIdentity.
In un applicazione ci possono essere più meccanismi di autenticazione, per sapere se un utente si è autenticato con Identity usiamo il SignInManager<TUser>.
Vediamo ora com’è la View _LoginPartial.cshtml.
LINK AL CODICE SU GITHUB
Scaricare il codice della sezione17 oppure il ramo master o clonare il repository GITHUB per avere a disposizione tutte le sezioni nel tuo editor preferito. Consulta il file README.md per reperire user e password per inviare e-mail con mailtrap.io. Inoltre devi reperire i codici per implementare il ReCaptcha. Sotto ti riporto un’immagine dal sito di Google.
Scrivi un commento