В этой главе мы кратко обсудим платформу ASP.NET Core Identity. ASP.NET Core Identity Framework используется для реализации проверки подлинности форм. Существует множество вариантов идентификации пользователей, включая проверку подлинности Windows и всех сторонних поставщиков удостоверений, таких как Google, Microsoft, Facebook, GitHub и т. Д.
-
Платформа Identity — это еще одна зависимость, которую мы добавим к нашему приложению в файле project.js.
-
Эта структура позволяет нам добавлять функции, где пользователи могут зарегистрироваться и войти в систему с локальным паролем.
-
Платформа также поддерживает двухфакторную аутентификацию, сторонние поставщики удостоверений и другие функции.
-
Мы собираемся сосредоточиться на сценариях, где пользователь может зарегистрироваться и войти и выйти.
Платформа Identity — это еще одна зависимость, которую мы добавим к нашему приложению в файле project.js.
Эта структура позволяет нам добавлять функции, где пользователи могут зарегистрироваться и войти в систему с локальным паролем.
Платформа также поддерживает двухфакторную аутентификацию, сторонние поставщики удостоверений и другие функции.
Мы собираемся сосредоточиться на сценариях, где пользователь может зарегистрироваться и войти и выйти.
Для этого нам нужно создать сущность User, и этот класс будет наследоваться от базового класса в платформе Identity, а базовый класс предоставляет нам наши стандартные пользовательские свойства, такие как имя пользователя и адрес электронной почты.
-
Мы можем включить в этот класс столько дополнительных свойств, сколько мы хотим, чтобы хранить информацию о наших пользователях.
-
Нам нужно взять этот класс User и подключить его к классу UserStore, предоставленному каркасом Identity.
-
UserStore — это класс, с которым наш код будет общаться, чтобы создавать пользователей и проверять пароли пользователей.
-
В конечном счете, UserStore будет общаться с базой данных. Платформа Identity поддерживает Entity Framework и все базы данных, которые могут работать с Entity Framework.
-
Но вы можете реализовать свой собственный UserStore для работы с любым источником данных.
-
Для правильной работы с Entity Framework наш класс User также подключится к классу IdentityDb.
-
Это класс, который использует Entity Framework DBContext для фактической работы с базой данных.
-
Нам нужно будет включить этот IdentityDb в наше приложение, чтобы существующий класс DataContext наследовал от IdentityDb вместо DBContext Entity Framework.
-
Это IdentityDb и UserStore, которые работают вместе для хранения информации о пользователях и проверки паролей пользователей, хешированных паролей, находящихся в базе данных.
Мы можем включить в этот класс столько дополнительных свойств, сколько мы хотим, чтобы хранить информацию о наших пользователях.
Нам нужно взять этот класс User и подключить его к классу UserStore, предоставленному каркасом Identity.
UserStore — это класс, с которым наш код будет общаться, чтобы создавать пользователей и проверять пароли пользователей.
В конечном счете, UserStore будет общаться с базой данных. Платформа Identity поддерживает Entity Framework и все базы данных, которые могут работать с Entity Framework.
Но вы можете реализовать свой собственный UserStore для работы с любым источником данных.
Для правильной работы с Entity Framework наш класс User также подключится к классу IdentityDb.
Это класс, который использует Entity Framework DBContext для фактической работы с базой данных.
Нам нужно будет включить этот IdentityDb в наше приложение, чтобы существующий класс DataContext наследовал от IdentityDb вместо DBContext Entity Framework.
Это IdentityDb и UserStore, которые работают вместе для хранения информации о пользователях и проверки паролей пользователей, хешированных паролей, находящихся в базе данных.
Есть две части ASP.NET Core Identity Framework, которые нам нужно знать
SignInManager
Это одна из двух частей Identity Framework —
-
Как видно из названия, SignInManager может войти в систему после того, как мы подтвердим пароль.
-
Мы также можем использовать этот менеджер для выхода из системы.
-
При проверке подлинности с помощью форм вход и выход осуществляются путем управления файлом cookie.
-
Когда мы сообщаем SignInManager о входе пользователя в систему, менеджер отправляет файл cookie в браузер пользователя, и браузер отправляет этот файл cookie при каждом последующем запросе. Это помогает нам идентифицировать этого пользователя.
Как видно из названия, SignInManager может войти в систему после того, как мы подтвердим пароль.
Мы также можем использовать этот менеджер для выхода из системы.
При проверке подлинности с помощью форм вход и выход осуществляются путем управления файлом cookie.
Когда мы сообщаем SignInManager о входе пользователя в систему, менеджер отправляет файл cookie в браузер пользователя, и браузер отправляет этот файл cookie при каждом последующем запросе. Это помогает нам идентифицировать этого пользователя.
Identity Middleware
Это второй кусок основы —
Чтение файла cookie, отправленного SignInManager, и идентификация пользователя, это происходит в последнем фрагменте платформы, Identity Middleware.
Нам нужно будет сконфигурировать это промежуточное ПО в конвейер нашего приложения для обработки cookie, установленного SignInManager. Мы также увидим некоторые другие особенности этого промежуточного программного обеспечения в следующих нескольких главах.