Знакомство с удостоверениями 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 по умолчанию в существующее приложение.

Проверьте свои знания

1.

Какое хранилище данных используется для удостоверений по умолчанию?