Пример #1
0
 public ActionResult RecuperarClave(string id)
 {
     try
     {
         SistemaRepository sr            = new SistemaRepository();
         UsuarioView       uv            = new UsuarioView();
         UsuarioRepository ur            = new UsuarioRepository();
         string            nombreUsuario = Request.Form["txtUsuario"];
         Usuario           u             = ur.Obtener(nombreUsuario);
         if (u == null)
         {
             uv.Mensaje = "El usuario especificado no existe en el sistema.";
         }
         else
         {
             string correo = u.Correo;
             string token  = Guid.NewGuid().ToString();
             if (ur.ActualizarToken(u.Id, token))
             {
                 SmtpClient  client    = new SmtpClient();
                 string      correoCMS = sr.Obtener().CorreoCMS;
                 MailAddress maDesde   = new MailAddress(correoCMS, "Configuration Management System");
                 MailMessage mm        = new MailMessage();
                 mm.From = maDesde;
                 mm.To.Add(u.Correo);
                 mm.Subject    = "Recuperación de Clave";
                 mm.IsBodyHtml = true;
                 StringBuilder sb  = new StringBuilder();
                 string        url = Url.Action("ResetearClave", "Usuario", null, Request.Url.Scheme, null);
                 sb.Append("Para recuperar su clave por favor haga click en el siguiente vínculo<br>");
                 sb.Append("<a href='" + url + "/" + token + "'>Recuperar clave</a>");
                 mm.Body = sb.ToString();
                 client.Send(mm);
                 uv.Mensaje = "Se ha enviado a su correo (" + correo + ") un mensaje de recuperación de clave.";
             }
             else
             {
                 uv.Mensaje = "El usuario especificado no existe en el sistema.";
             }
         }
         return(View("Mensaje", uv));
     }
     catch (Exception ex)
     {
         return(View("Mensaje", ex.Message));
     }
 }