Identità in ASP.Net Core 2.1: personalizzare AccountController


90

Ho installato ASP.NET Core 2.1ma anche se ho creato un nuovo ASP.NET Core Web Applicationutilizzo ASP.NET Core 2.1con Individual User AccountsStore user accounts in-appNon riesco a trovare AccountController o Views.

Posso ancora registrarmi e accedere senza problemi ma non riesco a trovare il codice, era presente nella 2.0.

inserisci qui la descrizione dell'immagine


Ho posto una domanda qui se sei interessato a rispondere: stackoverflow.com/questions/51728881/… . Sto lottando con il logout in un'app .NET Core 2.1 Identity Server 4. +1.
w0051977

Risposte:


74

Una delle modifiche nella 2.1 era costituita dalle librerie di classi Razor e l'identità predefinita risiede in una di queste nei singoli modelli di autenticazione. Se desideri avere il codice nella tua app in modo da poterlo personalizzare, puoi creare uno scaffolding con Visual Studio o con lo strumento scaffolder globale. Consulta questa guida su come eseguire entrambe le operazioni.


20
Sono stato in grado di generare file cshtml non controller. La guida non ne ha parlato, qualche idea su come generare accountController?
user1085907

6
Ah mio male .. è come designer nel subfile
user1085907

15
perché questa cosa è un miglioramento ? Rende le cose inutilmente contorte.
Liang

93

ASP.NET Core 2.1 ha introdotto una nuova funzionalità denominata librerie di classi Razor che consente di creare visualizzazioni e pagine come parte di una libreria riutilizzabile. ASP.NET Core Identity è stato spostato in tale RCL. Puoi sovrascriverlo nel tuo progetto:

  1. Da Esplora soluzioni , fare clic con il pulsante destro del mouse sul progetto> Aggiungi > Nuovo elemento con impalcatura .
  2. Dal riquadro sinistro della finestra di dialogo Aggiungi impalcatura , seleziona Identità > AGGIUNGI .
  3. Nel file ADD Identity finestra di dialogo , scegli i file che desideri sovrascrivere.
    1. Selezionare il layout se necessario
    2. Seleziona o crea la classe del contesto dati .
  4. Premi AGGIUNGI .

Per ulteriori informazioni, consultare la documentazione .


1
È necessario fare clic con il pulsante destro del mouse sul progetto, non sulla soluzione per ottenere il "Nuovo elemento impalcato" .. Grazie per l'
avviso

1
Questo ancora non porta nel campo Account Controller, diciamo che ho aggiunto campi personalizzati come posso dirgli che ne ho bisogno nel metodo di registrazione.
rogue39nin

Ehi, e se volessi sovrascrivere il controller invece della pagina del rasoio? Sto usando SPA quindi non sono sicuro di poter ignorare il controller
Robert Tirta il

7

La mia soluzione è creare un progetto con .net core 2.0, quindi aggiornare il framework alla 2.1 e tutte le dipendenze all'ultima versione




2

Per quanto ne so, il codice AccountController è stato spostato nelle pagine Razor (e il loro codice dietro) e funziona meglio usando i valori predefiniti, quindi per personalizzare il codice puoi Scaffold (cioè creare i file nel posto giusto) da una rete nuova di zecca Progetto Core 2.1 facendo clic con il pulsante destro del mouse sul progetto in Visual Studio 2017 e selezionando Aggiungi => Nuovo elemento con impalcatura => Identità che apre una finestra di dialogo Seleziona. Scegli le pagine desiderate e il gioco è fatto. Basta cambiare le pagine che desideri e copiarle nella stessa posizione in un progetto abilitato per Identity poiché queste nuove pagine sovrascrivono automaticamente le impostazioni predefinite. Questo è il nuovo modo per personalizzare l'autenticazione / autorizzazione utilizzando Identity non sono sicuro che molti considerino questo progresso significativo!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.