.Net Core Identity — это API, который управляет пользователями, паролями, данными профилей и многим другим. Многие вещи легко сделать, просто вызывая свойства, методы и присваивая значения. Но что, если мы хотим создать проверки паролей для конкретных случаев?

Для этого мы можем использовать метод ValidateAsync, который исходит из интерфейса IPasswordValidator. Методу ValidateAsync потребуются три параметра: userManager, user и password. Этот метод будет выполнять необходимые проверки при регистрации нового пользователя или изменении пароля.

Например, если мы хотим проверить, что имя пользователя совпадает с паролем во время регистрации, наш код будет выглядеть так:

Что происходит, так это то, что IPasswordValidator будет продвигать абстракцию проверки пароля. Он сделает часть работы за нас. Единственное, что нам нужно сделать, это код, который проверяет случаи, которые мы хотим. В случае примера выше, мы используем параметры метода, чтобы проверить, совпадает ли имя пользователя с паролем, если он не попадает в условие, регистрация завершается успешно. Используя класс IdentityError, мы можем передать нужное нам сообщение об ошибке.

Из этого мы можем добавить другие проверки, такие как проверка наличия в пароле специальных символов из определенного списка или наличие повторов в пароле, среди прочих возможностей. Таким образом, соответствующие сообщения об ошибках будут отображаться, а препятствия регистрации будут выполняться как по волшебству :) (абстракции .Net Core Identity).

Если вы знаете, как сделать это еще лучше, дайте мне знать, и давайте учиться вместе. Пока! Чау!