
21/05/2009, 16:41
|
 | | | Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 9 meses Puntos: 30 | |
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases Hola.. no se si la seguridad de roles que utiliza asp se puede utilizar en Vb, cosa que dudo pues esta esta ligada a los parametros de asp e IIS.
Lo que si es cierto es que tu mismo en tu base de datos puedes manejar a cada usuario mediante roles, creando una tabla que por ejemplo contenga el usuario, la contraseña, y el rol.
Luego en tu aplicacion verificas los datos del usuario y de acuerdo al rol que posee puedes deshabilitar los menús o poner invisibles.
Te dejo un codigo que te puede ayuda a hacerlo de esta forma que te comento
Private Function comprobarUsuario(ByVal usua As String, ByVal contr As String, ByVal rol As String) As Boolean
Try
Dim SQLCn1 As SqlConnection
Dim comando As SqlCommand
SQLCn1 = New SqlConnection
SQLCn1.ConnectionString = strConn
SQLCn1.Open()
Dim sql_comando As String
sql_comando = "SELECT COUNT(*) FROM Usuarios WHERE usuario= '" & usua & " ' AND password = '" & contr & "' and rol='" & rol & "' "
comando = SQLCn1.CreateCommand
comando.CommandText = sql_comando
Dim t As Integer = CInt(comando.ExecuteScalar())
SQLCn1.Close()
'lblResp.Text = CStr(t)
If t = 0 Then
Return False
End If
Return True
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Private Sub btnaceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnaceptar.Click
Dim ob As New Form1
If comprobarUsuario(txtuser.Text, txtpass.Text, txtrol.Text) = False Then
veces = veces + 1
If veces < intentos Then
Label1.Text = "Intentos: " & (intentos - veces) & " intentos."
Exit Sub
End If
Else
MessageBox.Show("Usuario y contraseña correctos", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information)
ob.Show()
If Val(txtrol.Text) = "2" Then
ob.proveeToolStripMenuItem.Visible = False
ob.OperadoresToolStripMenuItem.Visible = False
Me.Hide()
End If
End If
Hide()
FacturaxCobrar.lbluser.Text = txtuser.Text
End Sub
saludos, |