protected void BtnRecordar_Click(object sender, DirectEventArgs e)
    {
      try
      {
        int IdPersona = NumInt.Init(txtIdPersona.Text);
        co_tg_personas persona = new bf_tg_personas().GetData(IdPersona);
        IList<co_ca_usuarios> listUsuario =
               new bf_ca_usuarios().GetData(new co_ca_usuarios { id_persona = { id = IdPersona } });
        if (listUsuario.Any())
        {
          co_ca_usuarios usuario = listUsuario.FirstOrDefault();
          if (usuario != null)
          {
            string asunto = Constantes.ASUNTO_RC;
            string cuerpo = Constantes.CUERPO_RC;
            string password = new GeneradorPassword(8, 50, 10, 40).GetNewPassword();
            string passwordEncriptada = new Security().Encrypt(password);

            usuario.us_password = passwordEncriptada;
            usuario.us_fechaexpiracion.Fecha = DateTime.Now.AddMinutes(Constantes.ACC_TIEMPO_TOKEN);
            usuario.us_cambioPassword = TiposBases.EstadoRegistro.ACT;

            new bf_ca_usuarios().Save(usuario);

            cuerpo = string.Format(cuerpo, persona.pe_nombrecompleto, usuario.us_consuser, password);
            List<MailAddress> listDestinatarios = new List<MailAddress>();
            listDestinatarios.Add(new MailAddress(persona.pe_email,persona.pe_nombrecompleto));
            if (Mailer.Enviar(asunto, cuerpo, listDestinatarios))
            {
              Mensajes.Show("Mensaje", "Se a Enviado su nueva Contraseña al Correo Ingresado",
                           "window.location.href='Default.aspx'", MessageBox.Icon.INFO);
            }
          }
        }
      }
      catch (Exception ex)
      {
        Mensajes.Error(ex.Message);
      }
    }
 /// <summary>
 /// Constructor. La contraseña tendrá 8 caracteres, incluyendo una letra mayúscula, 
 /// un número y un símbolo
 /// </summary>
 public static string GetPassword()
 {
   // Se crea un método estático para facilitar el uso
   GeneradorPassword gp = new GeneradorPassword();
   return gp.GetNewPassword();
 }