Ver Mensaje Individual
  #32 (permalink)  
Antiguo 15/12/2009, 08:14
Avatar de jaullo
jaullo
 
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 10 meses
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Basandonos en la tercer opción diriamos que podria ser algo asi:

Creas una tabla llamada "usuarios" y esta contiene por ejemplo: usuario, password, rol

Entonces en tu form de login podrias usar algo asi

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

Esta función lo que hace es recibir como parametros los datos que pongas en los textbox.

Luego en el boton aceptar de tu form de login puedes poner lo siguiente:

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()
Me.Hide()
End If

End If

Para este ejemplo necesitarias tener un campo para el usuario, uno para el password, uno para el rol y un label.

Unicamente te faltaria definir la conexion a tu bd.

Espero te sirva de ayuda.