none
¿Cuáles son las pautas para construir un Sistema con Login de 5 tipos distintos de Usuarios? RRS feed

  • Pregunta

  • Desde ya les agradezco sus respuestas!

    Mi duda se basa en que yo tengo construido un sistema con tres subsistemas (Compras, Ventas, Producción). Al mismo tiempo, para acceder al sistema, hay 4 tipos distintos de Usuarios (Administrador del Sistema, Encargado de Compras, Encargado de Ventas, Encargado de Producción), por ende tengo cuatro niveles de acceso al sistema. El administrador tiene el 1er nivel de acceso y a este mismo le corresponde casi el 100% de los permisos de acceso (ya sea a todos los menúes y submenúes del menú principal y a las operaciones que debe de realizar el administrador del sistema como abm cerrados, etc.). Luego tengo el Encargado de Compras al cual le corresponde el nivel de acceso 2 y posee los permisos solo para acceder al subsistema de Compras (o sea, dentro del menú principal solo se le habilitarían los menúes o sub menúes que hagan referencia a las interfaces de Compras). Y así con todos los tipos de Usuarios.

    Entonces mi pregunta final y concreta será: ¿Como hago para controlar el ingreso de un usuario y dependiendo de su nivel de acceso, habilitar o deshabilitar las opciones del menú principal del sistema?

    Siendo que en mi base de datos (SQL Server 2008) tengo las tablas:

    Usuario: (UsuarioID [int], NivelAccesoID [int], Nombre [varchar(8)], Password[varchar(12)])
    NivelAcceso: (NivelAccesoID [int], Cargo [varchar (50)])

    Siendo que UsuarioID y NivelAccesoID son campos con Clave Principal, autonuméricos (y no permiten valores nulos como los demás campos...)

    En la parte donde hago el Login de Usuarios (frmLogin) tengo:

    NombreTextBox
    PasswordTextBox
    btnIniciarSesion

    Entonces en primer lugar, voy a validar los strings que contienen las cajas de texto contra los strings de mi base de datos, la parte de mi código sería así:

    Private Sub btnIniciarSesion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

    Dim conection As New SqlClient.SqlConnection

    Dim comando As New SqlClient.SqlCommand

    Dim adaptador As New SqlClient.SqlDataAdapter

    Dim dataset As New DataSet

    conection.ConnectionString = ("Data Source=.;Initial Catalog=Sal_Y_Luz_DB;Integrated Security=True")

    comando.CommandText = "SELECT * FROM Usuario WHERE Nombre ='" & Me.NombreTextBox.Text & "'AND Password='" & Me.PasswordTextBox.Text & "';"

    conection.Open()

    comando.Connection = conection

    adaptador.SelectCommand = comando

    adaptador.Fill(dataset, "Usuario")

    Dim count = dataset.Tables("Usuario").Rows.Count

    If count > 0 Then

    ¿¿¿????

    Else

    MsgBox("Login incorrecto, por favor chequee su nombre de usuario y/o contrasea", MsgBoxStyle.Critical, "Error")

    UsernameTextBox.Text = ""

    PasswordTextBox.Text = ""

    End If

    End Sub

    Entonces de esta manera ya me puedo logear validando los strings, pero cómo le hago para seleccionar el NivelAccesoID y por ejemplo con un Select Case ir por cada Cargo y deshabilitar los menús y por ejemplo llevar el nombre del encargado que se logeo al menú principal?

    Desde ya muchísimas gracias!

    lunes, 28 de diciembre de 2009 20:53

Todas las respuestas

  • hola

    respondi en el otro foro

    http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/962fb921-037d-4bdf-a2b1-54c4b5f4b446

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 29 de diciembre de 2009 0:53