Seguridad en formulario

Telemaco tencuento tengo una base de datos con tablas formulario consultas y informes, una tabla tiene los nombres claves y perfiles
Cuando abro la base le tengo puesto el formulario para que pida el nombre y la contraseña y con esto abra un formulario principal y de acuerdo al perfil me habilite solo algunos botones, hasta aquí funciona bien, el problema esta cuando un usuario pincha para abrir un formulario que debe usar y cierra este formulario para volver al principal aquí este se bare con todo los botones activados, como puedo hacer para que abra solo con los botones que al inicio estaban activados. La base esta en red y la ocupa más de un usuario a las vez
Espero me puedas ayudar
Gracias
Andres
[email protected]

1 Respuesta

Respuesta
1
Disculpa la demora en contestar... como lo hago yo... cuando abres un formulario, cierro el formulario principal que tu hablas yo lo llamo panel de control... y hago lo que tu dices... activo solo los botones que el usuario puede abrir(formulario, informes, etc) al abrir el formulario... CIERRO ESTE PANEL DE CONTROL... y cuando cierro el objeto (formulario, informe, etc) vuelvo abrir el panel de control PERO AL HACERLO VUELVO A BLOQUEAR LOS BOTONES (EN REALIDAD LOS VUELVO INVISIBLES) pero como se cual usuario es... PORQUE CUANDO INGRESA EL USUARIO EL ID Y LA CONTRASEÑA... yo guardo el código de este usuario en una variable PUBLICA QUE DEFINÍ EN UN MODULO.. así pues esta variable siempre contendrá el código del usuario.. POR ESO CUANTAS VECES ABRA EL PANEL DE CONTROL CONSULTO ESTA VARIABLE Y BUSCO QUE PERFILES TIENE Y BLOQUEO LOS BOTONES(INVISIBLE)... Y ESTO LO HAGO CON EL PROGRAMA.. OSEA NO IMPORTA QUE USUARIO INGRESE... COMO GUARDO SU CÓDIGO (LA LLAVE O IDENTIFICACIÓN DE EL) LE APLICO EL PERFIL...
Att:telemaco
Haber, debes crear un MODULO... y allí declararla como publica:
Public CodUsuario as long
Ahora, se supone que los usuarios, los tienes en una tabla (Código, Nombre, Contraseña, Id)... cuando preguntas la contraseña y el Identificaor, me imagino que buscaras en la tabla usuarios si existe, si lo encontró Esta variable en ese momento sera igual al código del usuario... Como la variable se mantiene SOLEMENTE DONDE CORRE LA BD...(ESTO NO QUIERE DECIR, QUE SI CORRE EN RED... YA TOMARA SOLO ESTE VALOR, YA QUE COMO OTRO USUARIO PUEDE ENTRAR EN OTRA MAQUINA, ENTONCES ESTA VARIABLE SE IGUALA EN ESA SESIÓN... PARA un usuario 1, que entra en una bd... tendrá su cvariable diferente, a otro usuario 2 que entra en otra maquina...)así se vincule por acceso directo a una sola bd... lo que importa es la sesión..) Lo que debes fijarte es que si ya inicio un usuario, NO INICIO EN OTRA MAQUINA... lo que hago es colocar una tabla temporal, que al ingresar un usuario lo coloco en esta tabla, y al salir lo borro, para que cuando ingreso así este bien la contraseña y el identificador, reviso esta tabla y veo si ya esta "conectado".. si es así... le niego el ingreso...
Así que no preucupe si trabajan dos o más usuarios conectados en red a una bd... ya que así sea por acceso directo(AUNQUE SE DEBEN TRABAJAR CON TABLAS VINCULADAS PARA RED)... serán SESIONES DIFERENTES ... y por tanto las variables así sean publicas se manejaran diferente...
Att:telemaco
telemaco creo que esa la respuesta a mi problema pero, soy novato en visual basic y no se como hay que declarar la variable publica para que me guarade su identificación mientras trabaja el usuario y ademas como identificaría cual usauario es cuando hay más de dos trabajando en la base
Se tu respuesta es excelente pero mis conocimientos son pocos por lo que no puedes hacerlo por código, pero que hice fue poner tablas vinculadas y en cada Pc elimine del formulario lo que no necesitaba el usuario de ese PC gracias por tu paciencia te pasaste y perdona la demora

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas