Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Aplicación con password

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Aplicación con password Responder citando

Soy nuevo y no he podido crear una aplicación que me pida un password antes de antrar a mi apicación y desde mi aplicacion poder modificarlo...
Gracias...

Felip
Volver arriba
Mensaje    Asunto: Responder citando

Este código levanta la primer línea de archivo_secreto.dat, la carga en un memo invisible y si no coincide con la clave ingresada en un EditBox cierra la aplicación.

De más está decir que el código puede ser infinitamente mejorado, pero es para que te des una idea, en pocas líneas.

Código:

Memo1->Visible = false;

Memo1->Lines->LoadFromFile("archivo_secreto.dat");


AnsiString sPass =  Memo1->Lines->Strings[0];

if (Edit1->Text != sPass)
  Application->Terminate();



Para cambiar la clave, basta a que escribas en un memo la nueva clave y que guardes el archivo:

Memo1->Lines->SaveToFile("archivo_secreto.dat");

Ojo que la nueva clave solo será la primer línea. También podrías reemplazar el Memo por un objeto Strings y esto quedaría mucho mejor.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

prueba tambien, acerlo en el evento OnActivate de tu Form Principal, donde llames a un form que tiene la clave de acceso..

la forma de encriptarlo, puede ser a tu gusto, o como te indica IKIS, que tambien es valida, es decir es una idea..

lo demas puedes hacerlo ... o tratar de buscar dentro del foro...

saludos..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

yo lo pondría en el onShow en vez del onActivate para hacer la verificación solo al comenzar la aplicación.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

ok, tambien es valido, lo importante, es que debes indicar donde quieres que se presente, yo lo pongo dentro del OnActivate, ya que estoy manejando Archivos MDIChild, y al regresar a la pantalla principal. se muestra a cada rato, al generarlo dentro de un evento OnActivate y con una Bandera del tipo Boolean, puedo espesificar que solo se presente una sola vez..



saludos..

bien ahora ya tienes respuestas.. es momento de tomar una idea...

saludos..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Crea un form que te pida el login y el pass para tu aplicacion, la forma de verificarlo puede ser la que elijas.. bd, algun fichero encriptado o la que quieras..
En el evento onCreate DE ESTE FORM, añade ShowModal().
De esta forma este form aparecera primero de forma modal antes que el principal de la aplicacion. Puedes incluso asegurarte de que no se muestre el principal mediante formprincipal->hide(), ya que este se crea primero pero no se muestra hasta que todos esten creados.
Lo ideal es que el form de verificacion este el ultimo en la lista de creacion. para ello tienes el orden en project->Options->Applicacion ()(creo recordar).
Tambien asegurate de quitarle todos los botones de systema, (cerrar, minizar y maximizar) al form del login para que no pueda salir.

Asi lo suelo hacer yo. si alguien ve algun inconveniente o problemas.. que lo diga y entre todos mejoramos Razz
Saludos
Volver arriba
Mensaje    Asunto: Responder citando

Una forma que me ha funcionado muy bien, es la utilización de una tabla en paradox, al pedir el formulario de registro login y pass, recorro la tabla para ver si el usuario está presente y si es así compara el pass introducido con el pass almacenado. este metodo te permite añadir usuarios o eliminarlos a tu gusto. Ademas, añado un booleano para, por ejemplo, saber el número de intentos de acceso y bloquear la cuenta si así lo necesito.

La tabla la protejo con otro pass, que lo paso desde codigo desviando el evento session (lo capturo) y le digo que utilice el pass que yo quiera, de esta forma evito el cuadro de password de la propia tabla y bloqueo el accedo directo a la tabla por parte del usuario.

Además siempre cargo una rutina, por si tengo que acceder con "mi User/pass" en la oficina de un cliente, por ejemplo, que cargo desde otra tabla.

Si quieres, te puedo poner algo de código para que empieces.
_________________
Un saludo
Rayder
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Yo quiero algun ejemplo. Gracias!!!
Muchas gracias por la ayuda.

Felip
Volver arriba
Mensaje    Asunto: Respuesta directa. Responder citando

Me dejo de teorias y te mando el codigo directamente.
Recuerda crear un Form nuevo con un TEdit (que sera donde debes de escribir la contraseña) y poner un asterisco en la propiedad PasswordChar.
En este mismo Form crea un boton tipo OK, y selecciona 'mrOk' en la propiedad ModalResult.

En el codigo principal...
Observa el codigo en FormActivate y de que manera se visualiza el Form2 (con un ShowModal) y como se cierra la ventana (Close) si la contraseña no coincide con la escrita.

Código:
//--------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
//--------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
}
//--------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
   if (Form2->ShowModal()==mrOk)   {
      if (Form2->Edit1->Text!="JUAN") Close();
    } else Close();
}
//--------------------------------------------------------------
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.