Взгляните на UserManager.GeneratePasswordResetTokenAsync
и UserManager.ResetPasswordAsync
.
Если сценарий, который вы обрабатываете, относится к «забытому паролю», вы, скорее всего, захотите отправить электронное письмо пользователю со ссылкой.Эта ссылка приведет пользователя к действию, которое принимает маркер сброса в качестве параметра запроса.Затем пользователь может нажать на эту ссылку, чтобы сбросить свой пароль, и оттуда будет сделан звонок ResetPasswordAsync
.
Если это сценарий, который вы просматриваете (ваше сообщение не является конкретным), то вам следует ознакомиться с руководством Microsoft здесь: Включить подтверждение учетной записи и восстановление пароля
Некоторый сокращенный код (только для иллюстрации / дидактических целей):
// Get the user by email - may need to be careful of casing here
IdentityUser user = _userManager.Users.First(x => x.Email == "email@example.com");
// Generate the reset token (this would generally be sent out as a query parameter as part of a 'reset' link in an email)
string resetToken = await _userManager.GeneratePasswordResetTokenAsync(user);
// Use the reset token to verify the provenance of the reset request and reset the password.
IdentityResult updateResult = await _userManager.ResetPasswordAsync(user, resetToken, newPassword);