
15/12/2009, 08:14
|
 | | | 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. |