Omówienie tożsamości podstawowej ASP.NET
W tej lekcji uzyskasz wiedzę na temat architektury tożsamości.
architektura ASP.NET Core Identity
ASP.NET Core Identity to system członkostwa, który dodaje możliwości rejestracji użytkowników i logowania do internetowego interfejsu użytkownika platformy ASP.NET Core. System członkostwa obsługuje zarówno kwestie związane z uwierzytelnianiem, jak i autoryzacją. Uwierzytelnianie zajmuje się tym, kim jesteś. Autoryzacja dotyczy tego, co możesz zrobić. W związku z tym uwierzytelnianie jest wymaganiem wstępnym autoryzacji.
Alternatywą dla tworzenia konta lokalnego jest obsługa zewnętrznych dostawców logowania, takich jak Facebook i X. Sesje użytkowników są zachowywane przy użyciu uwierzytelniania opartego na plikach cookie. Domyślnie plik cookie jest tworzony po zalogowaniu się i niszczony po wylogowaniu.
Dane dotyczące członkostwa są utrwalane przy użyciu magazynu danych i wybranej technologii dostępu do danych. Domyślną technologią dostępu do danych jest maper obiektowo-relacyjny (O/RM) o nazwie Entity Framework (EF) Core. Domyślnym magazynem danych jest serwer SQL Server.
Program EF Core abstrakuje zawiłości interakcji z bazową bazą danych. W związku z tym platforma EF Core zwykle umożliwia używanie z mechanizmem Identity dowolnego dostawcy bazy danych. Dostawcy baz danych są dostępni dla programów SQL Server, SQLite i kilku innych magazynów danych. Mechanizm Identity zapewnia również elastyczność umożliwiającą korzystanie z wybranej technologii dostępu do danych. Dapper to jedna z popularnych alternatyw.
Na poniższym diagramie przedstawiono architekturę mechanizmu Identity używaną w tym module:
Na powyższym diagramie:
- Aplikacja ASP.NET Core Razor Pages reprezentuje internetowy interfejs użytkownika, do którego dodano obsługę tożsamości w tym module.
- Warstwa usługi Identity Manager zawiera klasy używane z przestrzeni nazw
Microsoft.AspNetCore.Identity
. Przykłady takich klas używanych jawnie w tym module toSignInManager<TUser>
iUserManager<TUser>
. - Warstwa magazynu tożsamości platformy EF Core zawiera klasy z przestrzeni nazw
Microsoft.AspNetCore.Identity.EntityFrameworkCore
. Przykładem takiej klasy używanej niejawnie w tym module jestUserStore<TUser>
. - Dostawca bazy danych to biblioteka specyficzna dla bazy danych, która akceptuje kod SQL od dostawcy platformy EF Core (nie pokazano) i wykonuje go.
Program EF Core używa funkcji nazywanej migracjami, aby przyrostowo zaktualizować schemat bazy danych, aby zachować synchronizację z modelem danych aplikacji. Pomocnicze tabele baz danych są tworzone po zastosowaniu początkowej migracji platformy EF Core. Na poniższym diagramie przedstawiono schematy tabel pomocniczych:
Uwaga
Na powyższej ilustracji przedstawiono klucze i relacje w bazie danych. Klucz jest jednym, a nieskończoność (boki 8) jest wiele. Baza danych może mieć typy relacji jeden do jednego, jeden do wielu i wiele do wielu. Klucze są unikatowe. Na diagramie przedstawiono sposób tworzenia tych sprzężeń i relacji.
Podsumowanie
W tej lekcji przedstawiono informacje na temat architektury ASP.NET Core Identity. W następnej lekcji dodasz domyślną implementację tożsamości podstawowej ASP.NET do istniejącej aplikacji.