Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/05/2009, 16:41
Avatar de jaullo
jaullo
 
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
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,