Знакомство с удостоверениями ASP.NET Core
В этом уроке вы получите представление об архитектуре удостоверений.
Архитектура удостоверений ASP.NET Core
ASP.NET Core Identity — это система членства, которая добавляет возможности регистрации пользователей и входа в веб-интерфейс ASP.NET Core. Система членства обрабатывает задачи как проверки подлинности, так и авторизации. Проверка подлинности определяет, кем вы являетесь. Авторизация связана с тем, что вы можете сделать. Таким образом, проверка подлинности является необходимым условием для авторизации.
В качестве альтернативы созданию локальной учетной записи удостоверение поддерживает внешние поставщики входа, такие как Facebook и X. Сеансы пользователей сохраняются с помощью проверки подлинности на основе файлов cookie. По умолчанию файл cookie создается при входе и уничтожен при выходе.
Данные о членстве сохраняются с использованием хранилища данных и технологии доступа к данным, которые вы выбрали. Технология доступа к данным по умолчанию — это объектно-реляционный сопоставитель (O/RM), именуемый Entity Framework (EF) Core. Хранилище данных по умолчанию — SQL Server.
EF Core абстрагирует трикотания взаимодействия с базовой базой данных. Таким образом, EF Core обычно позволяет использовать любой из своих поставщиков баз данных с Identity. Поставщики баз данных доступны для SQL Server, SQLite и нескольких других хранилищ данных. Кроме того, Identity обеспечивает гибкость при использовании выбранной вами технологии доступа к данным. Одной из популярных альтернатив является Dapper.
На следующей схеме показана архитектура Identity, используемая в этом модуле:
На предыдущей схеме показано следующее.
- Приложение ASP.NET Core Razor Pages представляет веб-интерфейс, к которому добавлена поддержка удостоверений в этом модуле.
- Уровень диспетчера удостоверений содержит классы, используемые из пространства имен
Microsoft.AspNetCore.Identity
. Примерами классов, которые явно используются в этом модуле, являютсяSignInManager<TUser>
иUserManager<TUser>
. - Уровень хранилища удостоверений EF Core содержит классы из пространства имен
Microsoft.AspNetCore.Identity.EntityFrameworkCore
. Примером класса, неявно используемого в этом модуле, являетсяUserStore<TUser>
. - Поставщик базы данных — это библиотека базы данных, которая принимает код SQL от поставщика EF Core (не показан) и выполняет его.
EF Core использует функцию, называемую миграцией, для постепенного обновления схемы базы данных для синхронизации с моделью данных приложения. Вспомогательные таблицы базы данных создаются после применения начальной миграции EF Core. На следующей схеме показаны схемы вспомогательных таблиц:
Примечание.
На предыдущем рисунке показаны ключи и связи в базе данных. Ключ является одним, и бесконечность (боковая часть 8) много. База данных может иметь отношения типа "один к одному", "один ко многим" и "многие ко многим". Ключи уникальны. На схеме показано, как создаются эти соединения и связи.
Итоги
В этом уроке вы узнали об архитектуре удостоверений ASP.NET Core. В следующем уроке вы добавите реализацию удостоверений ASP.NET Core по умолчанию в существующее приложение.