Förstå ASP.NET Kärnidentitet
I den här lektionen får du en förståelse för identitetsarkitektur.
ASP.NET Kärnidentitetsarkitektur
ASP.NET Core Identity är ett medlemskapssystem som lägger till användarregistrerings- och inloggningsfunktioner i ett ASP.NET Core-webbgränssnitt. Medlemssystemet hanterar både autentisering och auktorisering. Autentisering handlar om vem du är. Auktoriseringen handlar om vad du har tillåtelse att göra. Autentisering är därför en förutsättning för auktorisering.
Som ett alternativ till att skapa ett lokalt konto stöder Identity externa inloggningsleverantörer som Facebook och X. Användarsessioner bevaras med hjälp av 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.
EF Core abstraherar invecklingarna i att interagera med den underliggande databasen. 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 ärSignInManager<TUser>
ochUserManager<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 ärUserStore<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. De stödjande databastabellerna skapas efter att den första EF Core-migreringen har tillämpats. I följande diagram visas scheman för stödtabellerna:
Diagram över schemat för identitetsdatabasen.
Kommentar
Föregående bild visar nycklar och relationer i databasen. Nyckeln är en en, och oändligheten (sidled 8) är många. En databas kan ha en-till-en-, en-till-många- och många-till-många-relationstyper. 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 Kärnidentitetsarkitektur. I nästa lektion lägger du till standardimplementeringen ASP.NET Core Identity i en befintlig app.