PDA

Ver la Versión Completa : Ayuda con código para password


radenf
25-10-2007, 15:18:29
Un gran saludo a todos.
Quisera que alguien pudiera ayudarme con el código para los cuadros de diálogo de password y de cambio de password. Sé que este tema ya se ha tratado anteriormente, pero en las búsquedas no he encontrado nada que me solucione el problema
He construído una aplicación en Delphi 6 y quiero limitar el acceso mediante uso de password.
En una de las tablas de la base de datos creé los campos de user y password, pero no logro dar con el código para compararlos con las que deben introducirse en el cuadro de diálogo, para validarlas.
Idéntico problema tengo si el usuario desea cambiar la password por él definida, dede el cuadro de diálogo respectivo de la aplicación.
Eternamente agradecido.

marcoszorrilla
25-10-2007, 15:23:36
Supongo que lo guardas encriptado en la tabla, para ello es de suponer que utilizas una función y también supongo que tendrás otra para desencriptar el contenido de la clave.

1. Se teclea el nombre de usuario, Buscas en la tabla para ver si existe o no dicho usuario.
2. Si existe le pides la constraseña, bien la encriptas y la comparas con la que tiene guardada dicho usuario o al contrario.
3. Si los pasos son correctos dejas el paso libre al usuario.

Es conveniente poner un contador, por ejemplo 3 intentos para que llegados allí automáticamente se cierre la aplicación.

Queda por determinar si el haber fracasado 3 veces seguidas faculta a una nueva entrada a la aplicación o dicho usuario queda eliminado hasta que el administrador lo vuelva a habilitar.

Un Saludo.

radenf
25-10-2007, 15:52:46
Lo que tú me señalas es la lógica del proceso, si embargo mi escaso conocimiento no me da para desarrollar el código que necesito. Si me puedes ayudar en ésto te lo agradezco. Puede ser algo genérico que yo adapte puesto que uso ABSDatabase como motor de base de datos, la que me parece excelente y muy superior a la BDE.
PD: Desconozco como encriptar o desencriptar los datos.
Saludos

enecumene
25-10-2007, 16:01:33
Hola Radenf, revisa este hilo (http://www.clubdelphi.com/foros/showthread.php?t=46990&highlight=login) a ver si es lo que buscas.

Saludos

radenf
26-10-2007, 03:14:29
Muchas Gracias Enecumene.
Probé el código propuesto por Caral y le hice las modificaciones respectivas para mi aplicación, sin embargo me arroja un error en la sentencia sql

SELECT Codigo, Nombre, Clave FROM Usuarios WHERE
Codigo = nom

indicando que no puede realizar la búsqueda y por lo tanto no me permite cambiar el query a true.
Podrías ayudarme? Yo no utilizo ADO sino ABSDatabase.

Saludos

nanozaja
28-10-2007, 01:19:09
hola radenf... estuve leyendo tu hilo... hace poco reformamos la parte de seguridad en el sistema de gestion de la empresa donde trabajo y estuve lidiando con usuarios, contraseñas y habilitacion de formularios segun el perfil del usuario... para empezar, te recomendaria q no encriptes la contraseña para guardarla en la base, dado q si desp tenes q trabajar con la base fuera de delphi y hubiesen usuarios q no conozcas, te seria dificil recuperar las contraseñas de estos.... incluso si quisieras loguearte como tales en tu sistema(no es correcto q pidas la contraseña a cada quien para entrar logueado como ellos, puesto q sos el administrador....).... ahora, podrias explicar como armas tu consulta para levantar los datos del usuario??? la consulta correcta podria ser algo asi:
SELECT
Codigo, //no entiendo este campo.... si supongo q debe ser el nombre de usuario
Nombre,
Clave
FROM
USUARIOS
WHERE
Codigo = '+Nom.Text
Esto deberias ponerlo en tu query, pero para ello la query debes activarla en tiempo de ejecucion, ya q si la consulta sql q pones la tenes en tiempo de edicion, tu "nom" seria un parametro y ya de esa forma lo estas definiendo mal, ya q debes llamarlo asi :nom con el : al lado para definir el parametro y luego si cargarle por codigo a tu query su parametro query.parambyname('Nom').AsString := nom.text
Espero te haya servido de algo y sea a tiempo.... cualq duda volve a preguntar y si te es de ayuda, me contactas por msn... un abrazooo

radenf
28-10-2007, 11:38:13
Muchas gracias nanozaja.
Gracias por tu aporte. El error estaba en la designación del parámetro, debía ser como tú señalaste :nom.

Saludos

ixMike
29-10-2007, 23:02:18
Bueno, no sé a estas alturas, pero en cuanto a una ventana de login, mira a ver si te sirve esto:

http://www.clubdelphi.com/foros/showthread.php?t=40776


Saludos.