public ActionResult RecuperarPass(RecuperarClaveView recuperar) { try { var usuarios = repositorioUsuario.ObtenerTodos(); var resultado = 0; String body = ""; foreach (Usuario item in usuarios) { if (item.Email.ToString() == recuperar.Email.ToString()) { item.Clave = Convert.ToBase64String(KeyDerivation.Pbkdf2( password: "******", salt: System.Text.Encoding.ASCII.GetBytes("Salt"), prf: KeyDerivationPrf.HMACSHA1, iterationCount: 1000, numBytesRequested: 256 / 8)); repositorioUsuario.Modificacion(item); body = "1234"; resultado++; } } if (resultado != 0) { MailMessage mail = new MailMessage(); mail.From = new MailAddress("*****@*****.**"); mail.To.Add(recuperar.Email.ToString()); mail.Subject = "Inmobiliaria López - Recuperación de Clave Personal"; mail.Body = "Cuando ingrese nuevamente al sistema modifique su contraseña. \n\nContraseña: " + body; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.Port = 25; smtp.EnableSsl = true; smtp.UseDefaultCredentials = true; smtp.Credentials = new System.Net.NetworkCredential("*****@*****.**", "50110392"); smtp.Send(mail); TempData["Mensaje"] = "Hemos enviado un mail a su correo"; return(RedirectToAction("Login")); } else { TempData["Error"] = "El Usuario ingresado no existe"; //se rederige porque no hay vista de cambio de pass, está compartida con Edit return(RedirectToAction("RecuperarPass")); } } catch (Exception ex) { TempData["Error"] = ex.Message; TempData["StackTrace"] = ex.StackTrace; return(RedirectToAction("Login")); } }
public async Task <ActionResult> RecuperarPass(RecuperarClaveView recuperar) { try { if (ModelState.IsValid) { var usuario = _context.Usuarios.FirstOrDefault(x => x.Email == recuperar.Email); if (usuario != null) { ViewBag.Success = "Recibirá en su correo la contraseña para ingresar."; string hashed = Convert.ToBase64String(KeyDerivation.Pbkdf2( password: "******", salt: System.Text.Encoding.ASCII.GetBytes("Salt"), prf: KeyDerivationPrf.HMACSHA1, iterationCount: 1000, numBytesRequested: 256 / 8)); usuario.Clave = hashed; _context.Usuarios.Update(usuario); await _context.SaveChangesAsync(); utilidades.EnciarCorreo(usuario.Email, "Club La Ribera - Blanqueo de clave", "<h2>Recuperación de clave para " + usuario.Apellido + " " + usuario.Nombre + "</h2>" + "<p>Recuerda modificar la contraseña cuando ingreses.</p>" + "<br />" + "<p>Tu contraseña es: 4321"); } else { ViewBag.Error = "No existe un usuario con este email"; } return(PartialView("_RecuperarClaveModal", recuperar)); } else { return(PartialView("_RecuperarClaveModal", new RecuperarClaveView())); } } catch (Exception ex) { TempData["Error"] = ex.Message; TempData["StackTrace"] = ex.StackTrace; return(RedirectToAction("Login")); } }