Einführung in ASP.NET Core-Identitäten
In dieser Lerneinheit erarbeiten Sie sich ein Verständnis der Identitätsarchitektur.
Architektur von ASP.NET Core Identity
Die ASP.NET Core-Identität ist ein Mitgliedschaftssystem, das der ASP.NET Core-Webbenutzeroberfläche Funktionen zur Benutzerregistrierung und Anmeldung hinzufügt. Das Mitgliedschaftssystem behandelt sowohl Authentifizierungs- als auch Autorisierungsprobleme. Bei der Authentifizierung geht es darum, wer Sie sind. Bei der Autorisierung geht es darum, wozu Sie berechtigt sind. Daher ist die Authentifizierung eine Voraussetzung für die Autorisierung.
Als Alternative zur lokalen Kontoerstellung unterstützt die Identitätsarchitektur externe Anmeldungsanbieter wie Facebook und X. Benutzersitzungen werden mithilfe cookiebasierter Authentifizierung beibehalten. Standardmäßig wird ein Cookie bei der Anmeldung erstellt und beim Abmelden gelöscht.
Mitgliedschaftsdaten werden mithilfe einer Datenspeicher- und Datenzugriffstechnologie Ihrer Wahl beibehalten. Die Standardtechnologie für den Datenzugriff ist ein objektrelationale Zuordnung (O/RM) namens Entity Framework Core (EF Core). Der Standarddatenspeicher ist SQL Server.
EF Core abstrahiert die Feinheiten der Interaktion mit der zugrunde liegenden Datenbank. Daher ermöglicht EF Core in der Regel die Verwendung der zugehörigen Datenbankanbieter mit dem Identitätsframework. Datenbankanbieter sind für SQL Server, SQLite und verschiedene andere Datenspeicher verfügbar. Das Identitätsframework ermöglicht die Verwendung einer Datenzugriffstechnologie Ihrer Wahl. Dapper ist eine beliebte Alternative.
Im folgenden Diagramm wird die in diesem Modul verwendete Identitätsarchitektur veranschaulicht:
Im obigen Diagramm ist Folgendes zu sehen:
- Die ASP.NET Core-Razor Pages-App stellt die Webbenutzeroberfläche dar, der in diesem Modul Identitätsunterstützung hinzugefügt wird.
- Die Identity Manager-Ebene enthält Klassen aus dem
Microsoft.AspNetCore.Identity
-Namespace. Beispielsweise werden die KlassenSignInManager<TUser>
undUserManager<TUser>
explizit in diesem Modul verwendet. - Die Ebene des EF Core-Identitätsspeichers enthält Klassen aus dem
Microsoft.AspNetCore.Identity.EntityFrameworkCore
-Namespace. Beispielsweise wird die KlasseUserStore<TUser>
implizit in diesem Modul verwendet. - Der Datenbankanbieter ist eine datenbankspezifische Bibliothek, die SQL vom EF Core-Anbieter (nicht abgebildet) akzeptiert und ausführt.
EF Core verwendet ein Feature namens Migrationen, um das Datenbankschema inkrementell zu aktualisieren, damit es mit dem Datenmodell der App synchron bleibt. Die unterstützenden Datenbanktabellen werden erstellt, nachdem die anfängliche EF Core-Migration angewendet wurde. Im folgenden Diagramm werden die Schemas der unterstützenden Tabellen dargestellt:
Hinweis
Die vorherige Abbildung zeigt die Schlüssel und Beziehungen in der Datenbank. Der Schlüssel steht für 1, das Unendlichzeichen (eine liegende 8) für n bzw. m. Eine Datenbank kann über 1:1-, 1:n- und m:n-Beziehungen verfügen. Schlüssel sind eindeutig. Das Diagramm zeigt, wie diese Verknüpfungen erstellt werden, und die entsprechenden Beziehungen.
Zusammenfassung
In dieser Lektion haben Sie die Architektur von ASP.NET Core Identity kennengelernt. In der nächsten Lerneinheit fügen Sie einer vorhandenen App die Standardimplementierung von ASP.NET Core Identity hinzu.