canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  45

Foros de programación, recursos, tutoriales, sistemas operativos...

Bienvenido a la zona de foros. Participa en alguno de nuestros foros: Foros de visual basic, foros de visual basic.net foros de Crystal reports, foros de C++ - C# , foros de Java, foros de PHP, foros de ASP.net. Seguro que hay un foro que te servirá de gran utilidad y si no lo encuentras avísanos y crearemos uno nuevo.
 

Retroceder   Foro > Recursos y tutoriales > Seguridad y encriptacion
 
LinkBack Herramientas Buscar en Tema Desplegado
  #1 (permalink)  
Antiguo 08-Jun-2007, 20:17
Avatar de edwinmoses
Member
Iniciad@
 
Fecha de Ingreso: 22-April-2006
Ubicación: Argentina
Mensajes: 82
Predeterminado

Hola foreros.

Una manera que a mi me resulto bastante efectiva para controlar el acceso de los usuarios a mis sistemas, es la de generar en la base de datos una tabla de registro de usuarios (llamada en este ejemplo Usuarios), que constara de los siguientes campos:

TABLA Usuarios

Usuario
(string 16)
Contraseña (string 20, encriptada)
Nivel (numerico entero, conteniendo niveles de 0 a 99 por ejemplo)


En otra tabla (en mi caso la llamo "Menues") definimos dos campos, NombreMenu y NivelRequerido, donde:

NombreMenu : es el nombre que le damos a cada opcion del menu en tiempo de diseño (por ejemplo : mnuArchivo, mnuSalir, mnuAyuda, etc.)

NivelRequerido : es un numero que indica el nivel minimo que tiene que tener un usuario para que esa opcion del menu se habilite (enabled) o no.

Luego, al cargar el form Main (al que en tiempo de diseño le incluimos un control Adodc llamado adoMenues, y que cargamos con los registros de la tabla "Menues"), colocamos en el evento Load la llamada a la Sub ActivarMenues, que transcribo a continuacion:

Public Sub ActivarMenues()
Dim stCode As String, code As Long, i As Integer
Dim el_Control As Variant, el_Menu As String
' El recordset adoMenues contiene un registro por cada opcion
' de menu. Asociado a cada opcion esta el nivel de acceso
' requerido.
With Me.adoMenues.Recordset
.MoveFirst
For i = 1 To .RecordCount ' recorro el recordset
el_Menu = .Fields("NombreMenu").Value
For Each el_Control In Me.Controls
If TypeOf el_Control Is Menu Then
If el_Control.Name = el_Menu Then
' La variable nNivel contiene el nivel de usuario guardado
' en la misma al momento del login, obtenido de la
' tabla Usuarios
If .Fields("NivelRequerido").Value <= nNivel Then
el_Control.Enabled = True
Else
el_Control.Enabled = False
End If
Exit For
End If
End If
Next
.MoveNext
Next i
End With
End Sub

Lo que hace la funcion es recorrer la tabla Menues registro por registro, compara el nivel del usuario (que lo leemos de la tabla Usuarios y colocamos en una variable publica al momento del login), y si el nivel del usuario es mayor o igual que el nivel requerido para esa opcion, modificamos la propiedad Enabled de la misma en true, de lo contrario (si es menor el nivel del usuario que el requerido) le asignamos el valor false.

De esta manera, para realizar cualquier modificacion de permisos de usuario bastara con modificar la tabla Menues o el permiso en si de cada usuario desde fuera del sistema, sin tocar ni una sola linea de codigo del mismo.

Tambien podemos poner una opcion en el sistema que sea solo accesible para el administrador del mismo, donde en un grid manejamos la tabla Usuarios para dar de alta nuevos usuarios, definir permisos de los mismos, etc. desde dentro del sistema. Esto queda mucho mejor y mas profesional que hacerlo desde fuera (accediendo a la tabla desde Access).

Espero les sea de utilidad. Cualquier pregunta no duden en postearme un mensaje personal.

Salu2 a to2

Edited by: edwinmoses
__________________
Programarás lo que debas programar, o no programarás nada...
Responder Citando
  #2 (permalink)  
Antiguo 09-Jun-2007, 13:11
Senior Member
Expert@
 
Fecha de Ingreso: 18-March-2007
Mensajes: 467
Predeterminado

Yo hago algo muy similar, Con una pequeña diferencia. A cada fomulario en su metodo Load le cargo las siguientes lineas para comprobar si puede o no acceder a dicho recurso. (esto lo hago así ya que muchas de mis aplicaciones permiten navegar entre los formularios a partir de otro y es facil dejar un punto de entrada sin comprobar.

Private sub Form_Load()

if NivelUsuario < NiveldeEsteRecurso then
me.hide
MsgBox "Carece del nivel adecuado para acceder a este recurso", VBOKONLY, "NIVEL"
unload me
end if

end Sub

Responder Citando
  #3 (permalink)  
Antiguo 12-Jun-2007, 10:27
Avatar de edwinmoses
Member
Iniciad@
 
Fecha de Ingreso: 22-April-2006
Ubicación: Argentina
Mensajes: 82
Predeterminado

Muy buena esa.
__________________
Programarás lo que debas programar, o no programarás nada...
Responder Citando
  #4 (permalink)  
Antiguo 09-Apr-2009, 08:59
Junior Member
Iniciad@
 
Fecha de Ingreso: 12-August-2008
Mensajes: 8
Predeterminado


me pueden regalar un sistemita del cual contenga todo esto de seguridad dios le bendigaa...que contenga permisos a menu de usuarios o de administrador
Responder Citando
  #5 (permalink)  
Antiguo 09-Apr-2009, 20:02
Avatar de seba123neo
Moderador
Guru
 
Fecha de Ingreso: 19-October-2006
Ubicación: Argentina
Mensajes: 2.785
Predeterminado

Hola, aca nadie te va a regalar nada...aparte es re-facil ya lo dijeron arriba..solo tenes que saber que tipo de usuario es y habilitar o deshabilitar los menues segun sea el tipo de usuario...

saludos.

__________________
Todos somos ignorantes;lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein
Responder Citando
  #6 (permalink)  
Antiguo 31-May-2009, 14:15
Junior Member
Iniciad@
 
Fecha de Ingreso: 12-August-2008
Mensajes: 8
Predeterminado

a vos maje no te he pedido nada ok si desde luego es que pido un ejemplo era para mejorar esta pajina ok como la web del programagor asi que te vale verga si pido un ejemplo ya que esto lo quiero implementar en visual Basic 2005 con SQL y pero ya veo que ni el autor de esto opina ahora vos
Responder Citando
  #7 (permalink)  
Antiguo 23-Oct-2009, 04:33
Junior Member
Iniciad@
 
Fecha de Ingreso: 18-September-2009
Ubicación: uio
Mensajes: 22
Talking

Saludos amigos, muy buen aporte...
Si seria bueno poner un ejemplo completo, ya que no tengo claro algo:

Sobre el NIVEL en la tabla de usuarios, a que se refiere este entero de 0 a 99???? y para que lo asigno.

Y en la tabla MENUES, como la relaciono con USUARIOS, ya que en NIVELREQUERIDO que valores van.. o como se enlazas por ejemplo:

El usaurio1 tiene privilegios solo a dos menus asiganados
El usaurio2 tiene privilegios solo a cinco menus asiganados....
Y asi....


De antemano les agradeceria
Responder Citando
  #8 (permalink)  
Antiguo 15-Mar-2010, 04:01
Avatar de Devilskate64
Moderador
Expert@
 
Fecha de Ingreso: 04-February-2008
Ubicación: Mexico
Mensajes: 306
Enviar un mensaje por MSN a Devilskate64
Predeterminado

se refiere a asignar un numero que va a identificar a los menus segun el nivel requerido por ejemplo:

en la tabla tenemos 5 de 10 registros con un numero... 1 digamos entonces digamos el usuario tiene nivel 1. Entonces solo habilitara esos 5 menus que tienen nivel 1
__________________
TSU. Oscar Arturo Vela Silva
Responder Citando
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
Permisos de usuarios informatico Visual Basic 6.0 1 31-Oct-2008 06:59
matriz de permisos para acceder a sistema vb cecyta Visual Basic 6.0 2 30-Jun-2007 18:06
Permisos, atributos de un archivo con usuarios Leandro Visual Basic 6.0 10 17-May-2007 10:16
Usuarios y Permisos tasslehoff06 Visual Basic 6.0 3 16-May-2007 00:32
Permisos de usuarios AHCM Visual Basic .NET 0 30-Aug-2006 23:46


La franja horaria es GMT +2. Ahora son las 05:26.


Visual Studio .VisualBasic.net .ADO.NET .ASP.NET .Framework .Crystal report
[Visual Basic .NET · Información legal · Condiciones de uso · Publicidad · Contacto · RSS novedades Foro · Inicio]
Un sitio web de Internelia (Ontecnia) © Copyright 2010 canalvisualbasic.net. Todos los derechos reservados