Creando un formulario de autenticación de usuarios para permitir o denegar el acceso a un sistema de información automatizado. Además agregaremos algunas funcionalidades que harán mas atractiva nuestros formularios.
Desarrollo
pasamos a crear un nuevo proyecto al cual llamaremos autenticacion-de-usuario:
Después de haber creado nuestro proyecto pasaremos a guardarlo en una carpeta correspondiente, para eso damos clic en archivo y luego clic en guardar todo y nos saldrá la siguiente pantalla donde eligiéremos la dirección donde se guardara el proyecto
Antes de empezar con la descripción de los controles a usar les mostrare una tabla con los usuarios de nuestro sistema
Usuario Clave Nivel1
Marx Vargas Mélendez 123 1
Cristina Diaz Peralta 456 2
Juan Huertas Caro 789 3
Después de eso pasaremos a agregarle los siguientes controles a nuestro formulario:
Control Descripción Propiedades
Label1 Usuario
Label2 Clave
Label3 Quedan"n" Intentos
Label4 Tiempo transcurrido=
ComboBox1 Lista de Usuarios ir a Items
Pulsas en los 3 puntos para agregar los
nombre que se asumen los usuarios
de nuestro sistemas los cuales estan
descritos en la tabla anterior.
Textbox1 nos vamos a la propiedad UseSystemPasswordChar y la cambiamos a true.
Groupbox1 opciones de acceso
Buttom1 Ingresar
Buttom2 cerrar
PictureBox1 agregamos alguna imagen que queramos.
Y por ultimo agregamos un control TIMER a nuestro formulario.
Si deseas puedes agregarle una imagen de fondo al formulario en la propiedad BackgroundImgage y luego cambiamos la propiedad BackgroundImgageLayout y elegimos Strech para que la imagen se adapte al tamaño del formulario.
Ahora si tenemos nuestro formularios listo para iniciar a programar:
Acemos doble clic en el formulario y escribo los siguientes codigos:
Codigo Fuente:
Evento Load de w_acceso
Private Sub w_acceso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim gp As New GraphicsPath
Dim oGPath As GraphicsPath = New GraphicsPath
oGPath.AddEllipse(New Rectangle(3, 30, 600, 360))
Me.Region = New Region(oGPath)
End Sub
luego para que el formulario cargue en el centro establecemos la propiedad StarPosition de w_acceso en CenterScreen.
Codigo Fuente: Evento Click del Botton 1 en mi caso le puse el nombre btnaceptar
Private Sub btnaceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnaceptar.Click
Select Case Me.ComboBox1.SelectedIndex
Case 0
If Me.TextBox1.Text = "123" Then
nivel = 1 'administrador
usuario = Me.ComboBox1.Text
Me.Timer1.Enabled = True
Else
datos_erroneos()
End If
Case 1
If Me.TextBox1.Text = "456" Then
nivel = 2 'supervisor
usuario = Me.ComboBox1.Text
Me.Timer1.Enabled = True
Else
datos_erroneos()
End If
Case 2
If Me.TextBox1.Text = "789" Then
nivel = 3 'operador
usuario = Me.ComboBox1.Text
Me.Timer1.Enabled = True
Else
datos_erroneos()
End If
End Select
End Sub
OJO no se asusten si es que les muestra algunos errores el detalle de esto es que nos falta crear unas variables que luego serán creadas.
Creando variables globales: ahora vamos a crear un nuevo modulo donde estarán las variables globales usuario y nivel:
Código Fuente:Modulo variables_globales:
Module variable_globales
Public nivel As String
Public usuario As String
End Module
Creamos un método datos_erroneos: contar las veces que los datos ingresados son incorrectos.
Véase..... el siguiente codigo....
Sub datos_erroneos()
Static contador As Integer
contador += 1
MsgBox("Acceso Incorrecto")
If contador = 3 Then
End
Exit Sub
End If
End Sub
Evento Tick de TIMER1
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.ProgressBar1.Visible = True
Me.ProgressBar1.Value += 5
If Me.ProgressBar1.Value = 100 Then
If Me.Timer1.Interval >= 1 Then
Me.Timer1.Enabled = False
frm_sgc.Show()
Me.Visible = False
End If
End If
End Sub
No te asustes si te sale un error en m_sgc.show() esto es porque aun no se ha creado el formulario principal que se abrirá luego de comprar el usuario
Ahora si pasaremos a crear el formulario m_sgc el cual se abrirá luego de ser comprobado el usuario
Código fuente: evento load:
Public Class frm_sgc
Private Sub frm_sgc_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Label2.Text = usuario
End Sub
End Class
Ahora si ejecutemos nuestro sistemita para ver como quedo:
Bueno y esto es todo por hoy en la siguiente publicación les enseñare a crear un formulario MDI para un sistema de ventas,compras y almacenes donde podremos probar con mucho mas detalle la forma en como funciona la autenticaión de usuario según sus niveles. Aquí les dejo una imagen de como sera nuestro próximo formulario. Hasta pronto esto fue todo por hoy no olviden preguntar, comentar que aquí estaré para aclarar sus dudas.