public async Task <IActionResult> ResetPassword(ResetPasswordViewModel model) { Console.WriteLine(model.Email); Console.WriteLine(model.Token); if (ModelState.IsValid) { var user = await UsrMgr.FindByEmailAsync(model.Email); if (user != null) { var result = await UsrMgr.ResetPasswordAsync(user, model.Token, model.Password); if (result.Succeeded) { return(View("ResetPasswordConfirmation")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return(View(model)); } ModelState.AddModelError("", "Usuário não encontrado!"); return(View(model)); } ModelState.AddModelError("", "Você forneceu algum dado inválido"); return(View(model)); }
public async Task <IActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { var user = await UsrMgr.FindByEmailAsync(model.Email); if (user != null && await UsrMgr.IsEmailConfirmedAsync(user)) { var token = await UsrMgr.GeneratePasswordResetTokenAsync(user); var passwordResetLink = Url.Action("ResetPassword", "Account", new { email = model.Email, token = token }, Request.Scheme); logger.Log(LogLevel.Warning, passwordResetLink); string emailHtmlBody = "<!DOCTYPE html>" + "<html>" + "<head>" + "<title></title>" + "</head>" + "<body>" + "Clique no link para redefinir sua senha:" + "<br/>" + "<a href='" + passwordResetLink.ToString() + "'>Redefinir senha</a>" + "</body>" + "</html>"; SendEmail.Send(model.Email, "BlogAspNet - Redefinir senha", emailHtmlBody); return(View("ForgotPasswordConfirmation")); } ViewBag.Message = "Usuário não cadastrado ou email do usuário não foi confirmado!"; return(View()); } return(View(model)); }