В этой главе мы кратко обсудим платформу 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. Мы также увидим некоторые другие особенности этого промежуточного программного обеспечения в следующих нескольких главах.

