Пример #1
0
        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"));
            }
        }
Пример #2
0
        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"));
            }
        }