Einführung in ASP.NET Core-Identitäten

Abgeschlossen

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 Twitter. 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.

Die Feinheiten der Interaktion mit der zugrunde liegenden Datenbank werden von EF Core abstrahiert. 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:

Diagramm, das die Identitätsarchitektur darstellt.

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 Klassen SignInManager<TUser> und UserManager<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 Klasse UserStore<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. Nachdem Sie die anfängliche EF Core-Migration angewendet haben, werden die unterstützenden Datenbanktabellen erstellt. Im folgenden Diagramm werden die Schemas der unterstützenden Tabellen dargestellt:

Diagramm: Schema der Identitätsdatenbank.

Hinweis

Die obige 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.

Überprüfen Sie Ihr Wissen

1.

Was ist der Standarddatenspeicher für Identity?