Dotnet Core - Scaffoling Identity Pages

in ASPNET Core

Dotnet Core – Scaffoling Identity Pages

Reading Time: < 1 minute

Quando viene generato un progetto ASP.NET Core 2.2 con Identity, il progetto crea, all’interno della cartella Areas, un’area denominata Identity.

Identity consente di aggiungere campi personalizzati all’interno dello schema predefinito delle tabelle utenti, e spesso si rende necessaria la creazione di layout personalizzati per la gestione degli utenti.

Le View che solitamente vengono create per la gestione degli utenti sono:

  • pagina di registrazione
  • pagina di login
  • pagina di scaricamento dati del profilo
  • pagina con il login a due fattori
  • pagina con messaggio di errore per l’accesso

e devono essere spesso modificate/integrate con i campi personalizzate aggiunti allo schema di default di Identity.

A partire da AspNet Core 2.1, tutte la pagine relative alla gestione del profilo utente, sono state integrate all’interno di un progetto specifico di nuget. Sicuramente questo nuovo approccio rende molto più semplice la gestione delle funzioni principali per la gestione degli utenti, ma molto spesso genera un pò di confusione al momento della personalizzazione. Spesso, infatti, mi viene chiesto come sia possibile personalizzare il layout delle pagine di Identity.

Le view, infatti, non sono visibili all’interno del progetto.

Per includerle nuovamente all’interno del progetto è necessario utilizzare la funzionalità dello scaffolding. Tramite l’interfaccia grafica di Visual Studio è possibile selezionare le pagine che devono essere ricreate, eventualemente anche tutte. Selezionando la cartella Areas e Identity (l’area creata automaticamente alla creazione del progetto), facendo click con il destro:

Aggiungi -> Nuovo Elemento di Scaffolding

A questo punto è sufficiente selezionare le pagine che dovranno essere create all’interno dell’area. Una volta terminata l’operazione verranno create tutte le Razor Pages pronte per essere modificate. Le pagine generate sono delle RazorPages quindi con estensioni .cshtml e relativo codefile .cs.

Ovviamente è possibile personalizzare anche il layout grafico ad esempio modificando il css (presente all’interno della cartella wwwroot) oppure l’inclusione di librerie javascript personalizzate.