 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Felip Invitado
|
Publicado: Mar 13 Abr, 2004 5:47 am Asunto: Aplicación con password |
|
|
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 |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Mar 13 Abr, 2004 12:00 pm Asunto: |
|
|
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 |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 14 Abr, 2004 12:50 am Asunto: |
|
|
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.. _________________
 |
|
| Volver arriba |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Mie 14 Abr, 2004 3:55 am Asunto: |
|
|
| yo lo pondría en el onShow en vez del onActivate para hacer la verificación solo al comenzar la aplicación. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 14 Abr, 2004 4:34 am Asunto: |
|
|
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.. _________________
 |
|
| Volver arriba |
|
 |
tresuves Invitado
|
Publicado: Mie 14 Abr, 2004 6:50 pm Asunto: |
|
|
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
Saludos |
|
| Volver arriba |
|
 |
rayder Master

Registrado: 03 Mar 2004Mensajes: 207
|
Publicado: Jue 15 Abr, 2004 12:41 pm Asunto: |
|
|
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 |
|
 |
Felip Invitado
|
Publicado: Vie 16 Abr, 2004 6:51 am Asunto: |
|
|
Yo quiero algun ejemplo. Gracias!!!
Muchas gracias por la ayuda.
Felip |
|
| Volver arriba |
|
 |
Invitado Invitado
|
Publicado: Vie 16 Abr, 2004 1:48 pm Asunto: Respuesta directa. |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|