In VS 2017 habe ich eine neue ASP.NET Core-Webanwendung erstellt. Auf der zweiten Seite des Assistenten habe ich Webanwendung und für die Authentifizierung "Individuelle Benutzerkonten" ausgewählt.
Jetzt versuche ich, die Seiten zu finden, die mit / Account / Register und / Account / Login verknüpft sind .
_Layout.cshtml bringt _LoginPartial.cshtml ein, ähnlich wie in der klassischen MVC:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a asp-page="/Index">Home</a></li>
<li><a asp-page="/About">About</a></li>
<li><a asp-page="/Contact">Contact</a></li>
</ul>
<partial name="_LoginPartial" />
</div>
Wenn der Benutzer nicht angemeldet ist, enthält _LoginPartial <a>
Tags, die auf die Anmelde- und Registrierungsseiten verweisen:
<ul class="nav navbar-nav navbar-right">
<li><a asp-area="Identity" asp-page="/Account/Register">Register</a></li>
<li><a asp-area="Identity" asp-page="/Account/Login">Login</a></li>
</ul>
Das alles scheint sinnvoll zu sein. Ich hätte jedoch erwartet, dass die Ordnerstruktur "Bereiche" die Ordner "Registrieren" und "Anmelden" enthält. Es tut nicht. Das einzige, was ich dort finde, ist _ViewStart.cshtml
Ich weiß, dass der Gerüstcode funktioniert. Wenn ich das Projekt ausführe, zeigt der Link "Registrieren" auf "/ Identität / Konto / Registrieren" und der Link "Anmelden" auf "/ Identität / Konto / Anmelden". Durch Klicken auf den Link Registrieren erhalte ich eine Registrierungsseite mit dem Text "Neues Konto erstellen".
Ich kann den Text "Neues Konto erstellen" jedoch nirgendwo im Projekt finden.
Kann mir jemand sagen, was ich vermisse?
quelle
Sie können dies in Visual Studio tun. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Hinzufügen-> Neues Gerüstelement
Wählen Sie dann Identität und klicken Sie auf Hinzufügen
Wählen Sie nun die Seiten aus, die Sie überschreiben möchten. Dropdown- Datenkontextklasse: und Ihr Namespace und Kontext sollten für Sie vorab ausgefüllt sein.
Klicken Sie abschließend auf Hinzufügen. Wenn dort bereits Überschreibungsdateien vorhanden sind (z. B. aus der Vorlage), wird vor dem Überschreiben gewarnt.
quelle
Klicken Sie mit der rechten Maustaste auf das Projekt, wählen Sie
Add -> New Scaffold Item
im Dialogfeld im linken Bereich Identität aus.Sie können diese Seiten auch mit diesem Befehl generieren:
Stellen Sie sicher, dass Sie durch Ihren eigenen Namespace + DbContext-Namen ersetzen. Die Seiten werden hier generiert:
Wenn Sie dieses Problem sehen:
Möglicherweise können Sie das Problem beheben, indem Sie es hinzufügen
.csproj
und neu erstellen :quelle
WebApplication1.Data.ApplicationDbContext
durch den richtigen Namespace und Dateinamen ersetzt?dotnet aspnet-codegenerator
. Vielleicht ist das das Problem?'Wenn Sie möchten, dass der gesamte Identitätscode in Ihrer Anwendung enthalten ist, damit Sie ihn nach Belieben ändern können, können Sie den neuen Identitätsgerüst verwenden, um den Identitätscode zu Ihrer Anwendung hinzuzufügen. Der gesamte Gerüstidentitätscode wird in einem identitätsspezifischen Bereichsordner generiert, damit er gut von Ihrem Anwendungscode getrennt bleibt. '
https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/#identity
Es funktioniert ziemlich schön und einfach für mich.
quelle
Etwas spät zur Party, aber nach Frustrationen mit der Identity UI habe ich es aufgegeben. Erstellen Sie Ihre Projekte ohne. Mein Rat ist (bei Verwendung von 2.1 oder 2.2), ein eigenes Konto zu erstellen / Controller und MVC-Seiten zu verwalten. Einige debugging von startup.cs ist erforderlich. Deaktivieren Sie auch die Kompilierungsoption für die Veröffentlichungsansicht (dh views.dll). Möglicherweise habe ich keine Option festgelegt, aber der Compiler ignoriert alle Änderungen in Skriptblöcken auf Seitenebene vollständig.
quelle