Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Autorizar el uso de mi aplicacion por internet. (https://www.clubdelphi.com/foros/showthread.php?t=69778)

FrianxD 08-09-2010 21:23:02

Autorizar el uso de mi aplicacion por internet.
 
Hola dsp de un tiempo aca estoy de nuevo, tengo una duda y quisiera saber si podrian ayudarme con ella, les paso a contar lo siguiente, hice una aplicacion, y quiero saber si puedo hacerle algo para q solo ande cuando yo quiera, ejemplo, alguien tiene mi aplicacion y la quiere abrir, cuando lo intenta, quiero que mi aplicacion antes de abrirse verifique no se, mediante una pagina o algo que tiene permiso para poder usarse, y de lo contrario q se cierre automaticamente.

se podria hacer algo como poner q el programa lea de la pagina una serie de numeros que si es distinta a la q tiene dentro la aplicacion, no le de permiso a abrirse y si es igual que se abra correctamente?

espero haberme expresado bien =P

Desde ya Muchas gracias.!:D

_cero_ 09-09-2010 04:09:26

ps veamos sería algo así.

Creación de un archivo binario:
Código:

//    Se crea el archivo local para después subirlo al servidor ftp
  TFileStream* fs=new TFileStream("c:\\mi_archivo.miextencin", fmCreate);

//    Se eligen los datos que introducirás en el archivo
  int MiNum=12345;
  char MiCad[40]="Esta cadena debería ir encriptada";

//    Se escriben los datos en el archivo, pueden ser simples como en este caso o
//    metes estructuras, imágenes, ejecutables, etc.
  fs->Write(&MiNum, sizeof(MiNum));
  fs->Write(&MiCad, sizeof(MiCad));

  delete fs;

Lectura de un archivo desde el servidor:
Código:

    TMemoryStream* ms=new TMemoryStream;
    int MiNum;
    char MiCad[40];

//    Se configura un TIdFTP con datos que debes encriptar ya que las cadenas son
//    visibles en los binarios en este caso tu exe.
    ftp->Host="ftp://MiFTP";
    ftp->Username="MiUsu";
    ftp->Password="**";

//    Se conecta y se carga la carpeta en donde tienes tyu archivo
    ftp->Connect();
    ftp->ChangeDir("/miDirEnFtp");

//    Se descarga a memoria, cuidado con los tiempos relacionados con peso/ancho de banda
//  y cantidad de memoria en la PC
    ftp->Get("mi_archivo.miextencin", ms, false);

//  Se posiciona y se leen los datos
    ms->Seek(0, 0);
    ms->Read(&MiNum, sizeof(MiNum));

    ms->Seek(sizeof(MiNum), 0);
    ms->Read(&MiCad, sizeof(MiCad));

    delete ms;
    ftp->Disconnect();

    ShowMessage(MiNum);
    ShowMessage(MiCad);
//  Aquí hago lo que quiera con las variables las desencripto y las trabajo.
//    Pd. El código necesita un poco más de trabajo como un try en la conexión al
//    ftp o puedes poner datos más complejos en el archivo, pero a grandes rasgos este es el procedimiento.
}


Neftali [Germán.Estévez] 09-09-2010 10:31:00

Sí se puede hacer, el problema es qué pasará cuando un cliente registrado tenga problemas para acceder a internet y no pueda utilizar tu aplicación (no va a estar muy contento) :(. O imagina que por un problema con tu ISP, o con telefónica (o la compañía de tu servidor), este está OFFLINE durante 2 días; ¿Qué pasará con tus clientes? ¿Los que tienen un número válido y que durante 2 días no van a poder entrar en su aplicación?
No creo que estén muy contentos... :o

Hay que tener presente todas las posibles opciones (sobre todo pensado en los clientes "legales") antes de implementar algun sistema de protección como este.

_cero_ 09-09-2010 20:41:09

Muy cierto Neftali creo que se me paso mencionar los inconvenientes como ya hiciste.

Este método no es del todo inviolable y causa muchas molestias, sin mencionar que la popularidad es inversamente proporcional a la seguridad (o al menos en la mayoría de los casos), por lo tanto en teoría no vale la pena gastar recursos del pc y del servidor para esta tarea, sin embargo el código que subí bien puede servir para un sistema de actualización (que es para lo que lo uso), así que a alguien más le podría servir.

Nos vemos.

FrianxD 11-09-2010 01:48:48

Gracias por la ayuda y los consejos :) algo asi era lo q buscaba, gracias


La franja horaria es GMT +2. Ahora son las 04:57:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi