jueves, 23 de agosto de 2012

Creando un formulario de autenticación usuarios

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.






2 comentarios:

  1. me podrias explicar porque as creado un modul

    ResponderEliminar
  2. el modulo lo cree porque es aquí donde declaro las variables globales que guardaran el nivel del usuario y el usuario para según esto poder darle acceso al sistema

    ResponderEliminar