public async Task <JsonResult> EsqueciMinhaSenha(EsqueciMinhaSenhaViewModel model) { var result = new { Succeeded = false, errors = new List <String>(), data = "" }; if (ModelState.IsValid) { var user = await UserManager.FindByNameAsync(model.Email); if (user == null) { // Don't reveal that the user does not exist or is not confirmed result = new { Succeeded = true, errors = new List <String>(), data = "" }; } else { string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var callbackUrl = Url.Action("RedefinirSenha", "Conta", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); String strHTML = System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("~/Emails/InstrucoesEsqueciMinhaSenha.html")); strHTML = String.Format(strHTML, user.DadosUsuario.Nome, callbackUrl); await UserManager.SendEmailAsync(user.Id, "Brasão Hamburgueria - Redefinir senha", strHTML); result = new { Succeeded = true, errors = new List <String>(), data = callbackUrl }; } } return(Json(result, "application/json", JsonRequestBehavior.AllowGet)); }
public EsqueciMinhaSenha() { _viewmodel = new EsqueciMinhaSenhaViewModel(); DataContext = _viewmodel; /*InitializeComponent();*/ InitializeDelegates(); }
public async Task <IActionResult> EsqueciMinhaSenhaAsync(EsqueciMinhaSenhaViewModel modelo) { if (ModelState.IsValid) { var user = await _userManager.FindByEmailAsync(modelo.Email); if (user == null || !(await _userManager.IsEmailConfirmedAsync(user))) { return(RedirectToAction("EsqueciMinhaSenhaConfirmado")); } var token = await _userManager.GeneratePasswordResetTokenAsync(user); token = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(token)); var callbackUrl = Url.RouteUrl("get_redefinir_senha", new { token }, Request.Scheme); var templateEmail = await this.RenderViewToStringAsync("~/Views/TemplateMail/_EmailComButton.cshtml", new EmailComButtonViewModel( titulo : "Alteração de senha MLists!", linkImagem : "https://img.icons8.com/bubbles/100/000000/short-hair-girl-key.png", descricao : "Para alterar sua senha clique no botão abaixo.", link : callbackUrl, linkDescricao : "Alterar senha") ); await _emailService.SendEmailAsync(modelo.Email, "Alteração de senha - MLists", templateEmail); return(RedirectToAction("EsqueciMinhaSenhaConfirmado")); } return(View(modelo)); }
public ActionResult EsqueciMinhaSenha(EsqueciMinhaSenhaViewModel model) { ViewBag.EmailEnviado = true; if (HttpContext.Request.HttpMethod.ToUpper() == "GET") { ViewBag.EmailEnviado = false; ModelState.Clear(); } else { var usuario = UsuarioModel.RecuperarPeloLogin(model.Login); if (usuario != null) { EnviarEmailRedefinicaoSenha(usuario); } } return View(model); }
public async Task <ActionResult> EsqueciMinhaSenha(EsqueciMinhaSenhaViewModel model) { if (ModelState.IsValid) { var user = await _userManager.FindByNameAsync(model.Email); if (user == null) { // Não revelar se o usuario nao existe ou nao esta confirmado return(View("EsqueciMinhaSenhaConfirmacao")); } var code = await _userManager.GeneratePasswordResetTokenAsync(user.Id); var callbackUrl = Url.Action("RecoverSenha", "Account", new { userId = user.Id, codigo = code }, protocol: Request.Url.Scheme); string htmlEmailBody = @" <html> <head> </head> <body style=' font-family: 'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif; font-weight: 200; line-height: 1.42857143; color: #777777; background-color: #eee; padding: 100px;'> <div style=' margin-bottom: 18px; background-color: #ffffff; border: 1px solid rgba(119, 119, 119, 0.46); border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.05); box-shadow: 0 1px 1px rgba(0,0,0,0.05); height: 150px;'> <div style=' padding: 10px 15px; border-bottom: 1px solid rgba(119, 119, 119, 0.46); border-top-right-radius: 3px; border-top-left-radius: 3px; box-sizing: border-box; background-color: #d9230f; color: #ffffff;'> <h3 style=' font-weight: 300; line-height: 1.1; margin-top: 0; margin-bottom: 0; font-size: 15px; color: inherit;'> SpaWeb - Esqueci minha senha </h3> </div> <div style='padding: 15px;'> <h2>Olá, " + user.Nome + @".</h2> <p>Para Recover sua senha, clique <a href='" + callbackUrl + @"'>aqui</a> e escolha uma nova senha.</p> </div> </div> </body> </html>"; await _userManager.SendEmailAsync(user.Id, "SpaWeb - Esqueci minha senha", htmlEmailBody); return(View("EsqueciMinhaSenhaConfirmacao")); } // No caso de falha, reexibir a view. return(View(model)); }