Inzicht in ASP.NET kernidentiteit

Voltooid

In deze les krijgt u inzicht in identiteitsarchitectuur.

ASP.NET Kernidentiteitsarchitectuur

ASP.NET Core Identity is een lidmaatschapssysteem waarmee gebruikersregistratie- en aanmeldingsmogelijkheden worden toegevoegd aan een ASP.NET Core-webgebruikersinterface. In het lidmaatschapssysteem worden zowel verificatie- als autorisatiezaken afgehandeld. Bij verificatie gaat het om wie u bent. Autorisatie houdt zich bezig met wat u mag doen. Daarom is verificatie een vereiste voor autorisatie.

Als alternatief voor het maken van een lokaal account ondersteunt Identiteit externe aanmeldingsproviders zoals Facebook en X. Gebruikerssessies blijven behouden met behulp van verificatie op basis van cookies. Standaard wordt er een cookie gemaakt bij het aanmelden en vernietigd bij afmelden.

Lidmaatschapsgegevens blijven behouden met behulp van een gegevensarchief en technologie voor gegevenstoegang van uw keuze. De standaardtechnologie voor gegevenstoegang is een Object-Relational Mapper (O/RM) met de naam Entity Framework (EF) Core. Het standaardgegevensarchief is SQL Server.

EF Core abstraheert de complexiteit van interactie met de onderliggende database. Daarom is het in EF Core doorgaans mogelijk om elke databaseprovider ervan te gebruiken in combinatie met identiteit. Databaseproviders zijn beschikbaar voor SQL Server, SQLite en verschillende andere gegevensarchieven. Identiteit biedt ook de flexibiliteit om een technologie voor gegevenstoegang van uw keuze te gebruiken. Dapper is een populair alternatief.

In het volgende diagram ziet u de identiteitsarchitectuur die in deze module wordt gebruikt:

Diagram met de identiteitsarchitectuur.

In het bovenstaande diagram:

  • De ASP.NET Core Razor Pages-app vertegenwoordigt de webgebruikersinterface waaraan identiteitsondersteuning wordt toegevoegd in deze module.
  • De laag Identiteitsbeheer bevat klassen die vanuit de naamruimte Microsoft.AspNetCore.Identity worden gebruikt. Voorbeelden van dergelijke klassen die expliciet in deze module worden gebruikt, zijn SignInManager<TUser> en UserManager<TUser>.
  • De laag EF Core Identity Store bevat klassen uit de naamruimte Microsoft.AspNetCore.Identity.EntityFrameworkCore. Een voorbeeld van zo'n klasse die impliciet in deze module wordt gebruikt, is UserStore<TUser>.
  • De Databaseprovider is een bibliotheek specifiek voor databases waarin SQL van de EF Core-provider (niet afgebeeld) wordt geaccepteerd en uitgevoerd.

EF Core maakt gebruik van een functie met de naam migraties om het databaseschema incrementeel bij te werken om het gesynchroniseerd te houden met het gegevensmodel van de app. De ondersteunende databasetabellen worden gemaakt na het toepassen van de eerste EF Core-migratie. In het volgende diagram ziet u de schema's van de ondersteunende tabellen:

Diagram van het schema van de identiteitsdatabase.

Notitie

In de voorgaande afbeelding ziet u de sleutel(en) en relaties in de database. De sleutel is een en de oneindigheid (zijwaarts 8) is veel. Een database kan een-op-een-, een-op-veel- en veel-op-veel-relatietypen hebben. Sleutels zijn uniek. In het diagram ziet u hoe deze joins worden gemaakt en de relaties.

Samenvatting

In deze les hebt u geleerd over ASP.NET Core Identity-architectuur. In de volgende les voegt u de standaard-ASP.NET Core Identity-implementatie toe aan een bestaande app.

Kennis testen

1.

Wat is het standaardgegevensarchief voor identiteit?