public async Task <IActionResult> ForgotPassword(UserForgotPassword model) { var user = await _userManager.FindByEmailAsync(model.Email); if (ModelState.IsValid) { if (user == null || !(await _userManager.IsEmailConfirmedAsync(user))) { return(StatusCode(404)); } var code = await _userManager.GeneratePasswordResetTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ResetPassword", pageHandler: null, values: new { area = "Identity", code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync( model.Email, "Reset Password", $"Please reset your password by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); return(StatusCode(404)); } return(StatusCode(404)); }
public async Task <IActionResult> ForgotPassword([FromBody] UserForgotPassword model) { var user = await _userManager.FindByEmailAsync(model.Email); if (ModelState.IsValid) { if (user == null || !(await _userManager.IsEmailConfirmedAsync(user))) { return(StatusCode(404)); } var code = await _userManager.GenerateNewTwoFactorRecoveryCodesAsync(user, 1); var codeGenerated = code.First(); // code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); // var callbackUrl = Url.Page( // "/change-password", // pageHandler: null, // values: new { area = "Identity", code }, // protocol: Request.Scheme); await _emailSender.SendEmailAsync( model.Email, "Reset Password", $"Your code for reset password: {codeGenerated}"); return(StatusCode(404)); } return(StatusCode(404)); }