Identität in ASP.Net Core 2.1: Anpassen des AccountControllers

87

Ich habe installiert, ASP.NET Core 2.1aber obwohl ich eine neue ASP.NET Core Web ApplicationVerwendung ASP.NET Core 2.1mit Individual User Accounts→ erstellt Store user accounts in-apphabe, kann ich den AccountController oder die Ansichten nicht finden.

Ich kann mich immer noch problemlos registrieren und anmelden, aber ich kann den Code dafür nicht finden, er war in 2.0 vorhanden.

Geben Sie hier die Bildbeschreibung ein

Ogglas
quelle
Ich habe hier eine Frage gestellt, wenn Sie an einer Antwort interessiert sind: stackoverflow.com/questions/51728881/… . Ich habe Probleme mit der Abmeldung in einer .NET Core 2.1 Identity Server 4-App. +1.
w0051977

Antworten:

71

Eine der Änderungen in 2.1 waren Razor Class Libraries, und die Standardidentität befindet sich in einer dieser Bibliotheken in den einzelnen Authentifizierungsvorlagen. Wenn Sie den Code in Ihrer App haben möchten, damit Sie ihn anpassen können, können Sie ihn mit Visual Studio oder mit dem globalen Gerüst-Tool erstellen. In dieser Anleitung erfahren Sie, wie Sie beides tun.

marcusturewicz
quelle
20
Ich konnte cshtml-Dateien generieren, keine Controller. Guide hat es nicht erwähnt, eine Idee, wie man accountController generiert?
user1085907
6
Ah mein schlechtes .. es ist wie Designer in Subdatei
user1085907
14
Warum ist dieses Ding eine Verbesserung ? Es macht die Dinge unnötig verworren.
Liang
89

Mit ASP.NET Core 2.1 wurde eine neue Funktion namens Razor-Klassenbibliotheken eingeführt, mit der Sie Ansichten und Seiten als Teil einer wiederverwendbaren Bibliothek erstellen können. ASP.NET Core Identity wurde in eine solche RCL verschoben. Sie können es in Ihrem Projekt überschreiben:

  1. Von Mappen - Explorer mit der rechten Maustaste auf das Projekt> hinzufügen > New Scaffolded Artikel .
  2. Wählen Sie im linken Bereich des Dialogfelds " Gerüst hinzufügen" die Option " Identität" > " HINZUFÜGEN" .
  3. Im ADD Identität Dialog wählen Sie Dateien , die Sie überschreiben möchten.
    1. Wählen Sie ggf. das Layout
    2. Datenkontextklasse auswählen oder erstellen .
  4. Drücken Sie HINZUFÜGEN .

Weitere Informationen finden Sie in der Dokumentation .

Xeevis
quelle
1
Sie müssen mit der rechten Maustaste auf das Projekt klicken, nicht auf die Lösung, um den 'New Scaffolded Item' zu erhalten. Vielen Dank für die
Hinweise
Das Feld "Account Controller" wird immer noch nicht angezeigt. Ich habe benutzerdefinierte Felder hinzugefügt. Wie kann ich sagen, dass ich sie in der Registrierungsmethode benötige?
Rogue39nin
7

Meine Lösung besteht darin, ein Projekt mit .net Core 2.0 zu erstellen und dann das Framework auf 2.1 und die Abhängigkeit von der neuesten Version zu aktualisieren

Wang
quelle
1

Soweit mir bekannt ist, wurde der AccountController-Code auf Razor-Seiten (und deren Code dahinter) verschoben und funktioniert am besten mit Standardeinstellungen, um den Code anzupassen, den Sie aus einem brandneuen Netz erstellen können (dh die Dateien an der richtigen Stelle erstellen können) Core 2.1-Projekt, indem Sie in Visual Studio 2017 mit der rechten Maustaste auf das Projekt klicken und Hinzufügen => Neues Gerüstelement => Identität auswählen, wodurch ein Auswahldialog geöffnet wird. Wählen Sie die gewünschten Seiten und los geht's. Ändern Sie einfach die gewünschten Seiten und kopieren Sie sie an dieselbe Stelle in einem identitätsfähigen Projekt, da diese neuen Seiten die Standardeinstellungen automatisch überschreiben. Dies ist die neue Methode zum Anpassen der Authentifizierung / Autorisierung mithilfe von Identity. Sie sind sich nicht sicher, ob viele diesen signifikanten Fortschritt in Betracht ziehen.

Lance Parkington
quelle