public IActionResult AlterarSenha(string ID) { if (User.Identity.IsAuthenticated && User.IsInRole("usuario")) { return(RedirectToAction("Index", "Home")); } if (User.Identity.IsAuthenticated && User.IsInRole("administrador")) { return(RedirectToAction("Index", "Admin")); } if (ID != null) { //localizar no banco e renderizar a alteração RecuperarSenhaLinks s = context.TBRecuperarSenhaLinks.FirstOrDefault(x => x.IDEncry == ID); if (s != null) { //existe no banco TimeSpan diff = DateTime.Now - s.tempo; if (!(diff.TotalSeconds <= 3600)) { ViewBag.TempoEx = "Tempo Expirado!"; } } return(View(s)); } else { return(RedirectToAction("Index", "Home")); } }
public IActionResult RecuperarSenha(RecuperarSenhaLinks usuario) { if (usuario.Email == "") { ViewBag.Erro = "Email vazio."; return(View()); } Usuario u = context.TBUsuario.FirstOrDefault(x => x.Email == usuario.Email); if (u != null) { RecuperarSenhaLinks s = new RecuperarSenhaLinks(); s.IDEncry = sha256encrypt("GustavoJeffersonNatasha" + u.ID); s.tempo = DateTime.Now; s.Email = u.Email; RecuperarSenhaLinks temp = context.TBRecuperarSenhaLinks.FirstOrDefault(x => x.IDEncry == s.IDEncry); if (temp != null) { context.TBRecuperarSenhaLinks.Remove(temp); } context.TBRecuperarSenhaLinks.Add(s); context.SaveChanges(); string link = "<a href=\"" + "https://" + HttpContext.Request.Host + "/Usuario/AlterarSenha/" + s.IDEncry + "\">Alterar Senha</a>"; SendMail(u.Email, "Link para recuperação: " + link, "Recuperação de Senha - Certificados"); ViewBag.Confirmacao = "Um email foi enviado com um link para alteração da senha (validade de 1 hora)"; } else { ViewBag.Erro = "Email não encontrado"; } return(View()); }
public IActionResult AlterarSenha(RecuperarSenhaLinks r) { if (ModelState.IsValid) { RecuperarSenhaLinks temp = context.TBRecuperarSenhaLinks.FirstOrDefault(x => x.IDEncry == r.IDEncry); if (temp != null) { Usuario u = context.TBUsuario.FirstOrDefault(x => x.Email == temp.Email); u.senhaEncry = sha256encrypt(r.Senha); context.TBUsuario.Update(u); context.TBRecuperarSenhaLinks.Remove(temp); ViewBag.Confirmacao = "Senha Alterada"; context.SaveChanges(); } else { ViewBag.Confirmacao = "Erro"; } } return(View()); }