Förstå ASP.NET Core identitet

Slutförd

I den här lektionen får du en förståelse för identitetsarkitektur.

ASP.NET Core identitetsarkitektur

ASP.NET Core Identity är ett medlemskapssystem som lägger till funktioner för användarregistrering och inloggning i ett ASP.NET Core webbgränssnitt. Medlemssystemet hanterar både autentisering och auktorisering. Autentisering handlar om vem du är. Auktorisering handlar om vad du får göra. Autentisering är därför en förutsättning för auktorisering.

Som ett alternativ till att skapa lokala konton stöder Identity externa inloggningsleverantörer som Facebook och Twitter. Användarsessioner bevaras med cookiebaserad autentisering. Som standard skapas en cookie vid inloggning och förstörs vid utloggning.

Medlemsdata görs beständiga med hjälp av ett datalager och en valfri dataåtkomstteknik. Standardtekniken för dataåtkomst är en objekt-relationell mappning (O/RM) som kallas Entity Framework (EF) Core. Standarddatalagret är SQL Server.

Det krångliga med att interagera med den underliggande databasen abstraheras bort med EF Core. Därför gör EF Core allmänt möjligt att använda någon av dess databasproviders med Identity. Databasprovidrar är tillgängliga för SQL Server, SQLite och flera andra datalager. Identity ger även flexibiliteten att använda valfri dataåtkomstteknik. Dapper är ett populärt alternativ.

I följande diagram visas den Identity-arkitektur som används i den här modulen:

Diagram som visar identitetsarkitekturen.

I diagrammet ovan händer följande:

  • Appen ASP.NET Core Razor Pages representerar webbgränssnittet som identitetsstöd läggs till i den här modulen.
  • Identity Manager-lagret innehåller klasser från namnrymden Microsoft.AspNetCore.Identity. Exempel på sådana klasser som används explicit i den här modulen är SignInManager<TUser> och UserManager<TUser>.
  • EF Core Identity Store-lagret innehåller klasser från namnrymden Microsoft.AspNetCore.Identity.EntityFrameworkCore. Ett exempel på en sådan klass som används implicit i den här modulen är UserStore<TUser>.
  • Databasprovider är ett databasspecifikt bibliotek som accepterar SQL från EF Core Provider (ej på bild) och kör den.

EF Core använder en funktion som kallas migreringar för att stegvis uppdatera databasschemat för att hålla det synkroniserat med appens datamodell. Efter tillämpning av den inledande EF Core-migreringen skapas de stödjande databastabellerna. I följande diagram visas scheman för stödtabellerna:

Diagram över schemat för identitetsdatabasen.

Anteckning

Bilden ovan visar nycklar och relationer i databasen. Nyckeln är en, och oändligheten (sidlede 8) är många. En databas kan ha relationstyperna en-till-en, en-till-många och många-till-många. Nycklar är unika. Diagrammet visar hur dessa kopplingar skapas och relationerna.

Sammanfattning

I den här lektionen har du lärt dig om ASP.NET Core identitetsarkitektur. I nästa lektion lägger du till standardimplementeringen ASP.NET Core Identity i en befintlig app.

Kontrollera dina kunskaper

1.

Vad är standarddatalagret för identitet?