Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-10-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Login y encriptado de contraseñas

Primero que nada quiero decir que ya busque en el foro y si hay varios hilos al respecto pero no entiendo muy bien su funcionamiento de los ejmplos que baje y del codigo que pusieron en algunos hilos por eso abro este post.

Bueno aqui las preguntas al respecto:

1-Vi que algunos codigo usan en los form de login
Código Delphi [-]
loginok := true
Esta es una funcion ya existente de delphi o es una declaracion manual?.

En el form que cree para probar el registro en primera instancia estaba usando dbedit para la contraseña y reperir contraseña pero no fue el modo correcto de hacerlo entonces me puse con el componente tedit pero no logro como comparar las contraseñas y comprobarlos algo asi seria la logica de lo que quiero pero no pude mandar los datos a la base de datos y mucho menos cifrarlos
Código Delphi [-]
if tedit1 = tedit2 
then // aqui tendria que ir el llamado al cifrado  y el post a la base de datos
else 
 cartel que avise que las contraseñas no son iguales

Con respecto al login primero deberia avisar al que intente logear que el usuario no existe o simplemente lo compruebo y si no existe mando una alerta como "el usuario o la contraseña no coinciden" por seguridad?. Obviamente a todo esto tiene que coincidir el usuario y la contraseña sean correctas para poder logearse.

Tambien lei por ahi que se puede trabajar directamente con lo usuarios de la base de datos (en mi caso sqlserver) que ventajas y desventajas tiene esto con respecto a usar una tabla de usuarios?

Gracias por su tiempo
Responder Con Cita
  #2  
Antiguo 26-10-2017
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
Contestando a tus preguntas:

1)
Código Delphi [-]
LoginOk := True;
No es ninguna función. Es una asignación a una variable booleana. Seguramente el que la usaba la inicializa por defecto a True, pero sin el resto del código no podría asegurarte más

2)

La forma correcta de probar el login en primera instancia sería algo como esto:
Código Delphi [-]
if tedit1.Text = tedit2.Text then 
begin 
  // aqui tendria que ir el llamado al cifrado  y el post a la base de datos
end
else 
  ShowMessage('Las contraseñas no son iguales');
Respecto a la pregunta final, depende del gusto de cada uno, pero piensa una cosa: Para comprobar si se realiza el login correctamente sobre usuarios de la base de datos... ¡Tienes que conectarte primero a la base de datos con un usuario!.

En este caso, lo que se suele hacer es tener un usuario genérico en la base de datos, conectarte con ese a la misma, y luego comprobar los perfiles y autorizaciones con cada uno de los usuarios dados de alta


Saludos
Responder Con Cita
  #3  
Antiguo 26-10-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Cita:
Empezado por ElKurgan Ver Mensaje
Contestando a tus preguntas:

1)No es ninguna función. Es una asignación a una variable booleana. Seguramente el que la usaba la inicializa por defecto a True, pero sin el resto del código no podría asegurarte más
Te adjunto el codigo del ejempo que descargue de la pagina

Cita:
Empezado por ElKurgan Ver Mensaje
2) La forma correcta de probar el login en primera instancia sería algo como esto:
Código Delphi [-]
if tedit1.Text = tedit2.Text then 
begin 
  // aqui tendria que ir el llamado al cifrado  y el post a la base de datos
end
else 
  ShowMessage('Las contraseñas no son iguales');
Como hago el post a un campo especifico, estuve trabajando con dbedit y eso manda el dato automaticamente

Cita:
Empezado por ElKurgan Ver Mensaje
Respecto a la pregunta final, depende del gusto de cada uno, pero piensa una cosa: Para comprobar si se realiza el login correctamente sobre usuarios de la base de datos... ¡Tienes que conectarte primero a la base de datos con un usuario!.

En este caso, lo que se suele hacer es tener un usuario genérico en la base de datos, conectarte con ese a la misma, y luego comprobar los perfiles y autorizaciones con cada uno de los usuarios dados de alta
El soft esta con un usuario por defecto conectado a sqlserver, ya sabia que necesita el usuario, de echo estaba pensando en crear un instalador para el soft y este verifique si el sistema tiene la sqlserver y pida los datos sino que instale los sqlsever y cree el usuario por defecto con los datos que ingese el que lo instale y esos valores asignarlos a la conexion con la base de datos(que por el momento no tengo ni la mas minima idea de como hacer eso asi que lo dejo para cuando el soft ande bien xD).
Tengo creada la tabla usuarios a medias pero mi pregunta pasaba mas por el rendimiento y la seguridad si conviene trabajar con los usuarios de el motor o la tabla.
Gracias por tu ayuda
Archivos Adjuntos
Tipo de Archivo: zip Loguearse.rar.zip (32,1 KB, 11 visitas)

Última edición por The Cid James fecha: 26-10-2017 a las 09:01:06.
Responder Con Cita
  #4  
Antiguo 26-10-2017
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
He estado mirando el código que adjuntas y, efectivamente, es una declaración manual de una variable booleana.
Se inicializa a False y, solo en el caso de que usuario y password sean correctos, se pone a true. Es una especie de control del estado de la conexión.

En lo referente al campo específico yo lo que quería decir es que se debía controlar la propiedad "text" de los campos de edición, no el control en si mismo.
Veo que en él código que has remitido ya está corregido.

Y finalmente, el rendimiento no se ve afectado por este tema. Otra cosa es la seguridad, aunque también depende del propósito final de la aplicación. Un ejemplo: En el trabajo, en un programa para distintas personas de un taller, todo el mundo conoce la password general de la aplicación, aunque no pueden acceder a la base de datos así como así. Sin embargo, dentro si que tienen definidos perfiles de usuario, y dependiendo de quien se conecte, accederá a unas partes u otras de la aplicación. Como la aplicación no va a salir del taller, la seguridad tampoco es lo que más nos preocupa

Espero haber resuelto tus dudas

Un saludo
Responder Con Cita
  #5  
Antiguo 27-10-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Ok gracias, voy a ponerme con estos temas a ver si me sale ya andare preguntando cuando tenga otra duda o no entienda algo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
numero encriptado o en clave escorpionrojo43 OOP 6 06-06-2010 21:37:17
TDBGrid con campo encriptado con AES Novás Varios 1 28-03-2009 21:20:25
Delphi 3... Encriptado .BMP zapato Gráficos 12 24-05-2006 22:14:42
encriptado de datos sergio17 Varios 7 13-01-2006 20:06:54
Leer XML encriptado OscarG Providers 2 05-10-2005 18:42:58


La franja horaria es GMT +2. Ahora son las 20:35:13.


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