Lo primero que tenemos que hacer es crear nuestra base de datos con nuestros usuarios y contraseñas correspondientes para esto utilizare el mismo entorno de visual basic.net 2005 que nos da la opción de poder crear base de datos sql sin salir de ella:
Ingresamos a visual Basic.net 2005 y creamos un nuevo proyecto

Lo Llamaremos ValidacionUsuarios y aceptamos.
Bueno ya creado nuestro proyecto nos dirigimos al menú Proyecto/Agregar Nuevo Elemento

Elegimos La opción Base De Datos en Blanco y Le ponemos el Nombre BDUSUARIOS y Aceptamos:


Nos aparece el Asistente Para La Configuracion De Origenes De Datos, en esta ocacion le damos cancelas por que no tenemos ninguna tabla creada:

Si nos fijamos en el Explorador de Soluciones que la Base de Datos ya se agrego

bien ahora tenemos que crear las tablas donde ingresaremos los datos de los usuarios, para eso nos dirigimos al Menu Ver/Explorador de Servidores

Exploramos y en tablas le damos clic derecho y la opción Agregar Nueva Tabla:

Diseñamos la tabla como muestra la siguiente imagen, no nos olvidemos de la Clave Primaria solo con clic derecho podremos agregarlo.


Damos Clic en Guardar y le asignamos a la tabla el nombre USUARIOS

De igual forma Creamos otra tabla para establecer los privilegios del usuario llamado PRIVILEGIOS y tiene el siguiente diseño:

Para ver como funciona la validadion ingresamo los siguientes registros:
Tabla PRIVILEGIOS

Tabla USUARIOS

Para poder ingresar los registros solo tenemo que dar clic derecho en la tabla y elegir la opcion Mostrar Datos de la Tabla

bien hasta aquí solo nos hemos dedicado a la creación de la Base de Datos, ahora vamos a comenzar crear nuestro formulario de ingreso, por defecto ya visual basic. net nos crea un formulario llamado form1, pasaremos a diseñarlo como muestra la imagen:

Cambiar la propiedad name de los siguientes controles para un mejor manejo:
Formulario = frmingreso
boton Ingresar = btningresar
Boton Salir = btnsalir
Textbox De Ingreso de Usuario = txtusuario
Textbox de Ingreso de Password = txtpassword
Al terminar crear otro formulario Mdi Con el Siguiente Diseño:

Si No Logras ver bien la imagen solo dele clic a la imagen para ampliarla
Bueno listo, voy a explicar como es la logica de este programa:
lo que va hacer es mediante el primer formulario consultar a la base de datos si el usuario y Password ingresados son correctos en la tabla USUARIOS, al tener una respuesta correcta se llamara el segundo formulario, tambien validara los privilegios del usuario, y bloqueara algunas opciones de la barra de menus segun su nivel:
Administrador= Mostrara todas las opciones de la barra de menus
Mienbro= pondra en enabled o desabilitado el menu Administrador
Invitado=desabilitara el menu Administrador y Mienbro
Y por ultimo mostrara en la barra de estado el nombre del usuario.
De caso contrario si no ingresa un usuario o password correcto solo tendra 3 opciones para poder intentar ingresar.
ok ahora vamos a la codificacion:
Primero declaramos a nivel de modulo las siguientes variables para ser reconocido por los dos formularios:
Module Module1
Public opcion As Integer = 1
Public nivel As String
Public usuariov As String
End Module
Damos Doble clic en el boton Ingresar y en la primera line digitar lo siguiente antes del public class:
Imports System.Data.SqlClient
Public Class frmingreso
' codigo del boton salir
Private Sub btnsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalir.Click
Application.Exit()
End Sub
'Codigo en el boton Ingresar
Private Sub btningresar_Click(ByVal sender As System.Object, ByVal e AsHandles btningresar.Click
'Declaracion de variables para la coneccion, dataadapter,dataset
Dim texto As String
Dim cn As New SqlConnection
Dim da As SqlDataAdapter
Dim ds As New DataSet
'Variables usuario y contraseña , se le asigna el valos de las cajas de texto,y la variable activo, para ver si el usuario esta activo o no
Dim usuario As String
Dim password As String
usuario = Me.txtusuario.Text
password = Me.txtpassword.Text
Dim activo As String
'declaramos la conección
cn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=DataDirectory \BDUSUARIOS.mdf;Integrated Security=True;User Instance=True"
'Try es para capturar los errores que puedan producirce la ejecucion del proceso
Try
'Crea el adaptador de datos, recuperando los datos de la tabla
texto = "SELECT * FROM USUARIOS WHERE usuario='" & usuario & "' and password='" & password & "'"
'Abrir la conección
cn.Open()
'ejecuto la consulta con el data adapter y lo guardo en la variable da
da = New SqlDataAdapter(texto, cn)
'Limpia el dataset
ds.Clear()
'Llena el Dataset con el data adapter
da.Fill(ds, "usuarios")
'Cuenta los registros del datatable si es igual a 0
If ds.Tables("usuarios").Rows.Count() = 0 Then
'Si no existe el usuario o contraseña verifica cuantas veces a intentado ingresar
If opcion = 3 Then
MessageBox.Show("A Perdido la Oportunidad de Ingresar", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Stop)
Me.Close()
End If
MessageBox.Show("Usuario o Contraseña Incorrecta", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error)
Me.txtusuario.Text = ""
Me.txtpassword.Text = ""
Me.txtusuario.Focus()
'Agrega uno mas a la opcion de ingresar
opcion += 1
Else
'ver si el usuario esta activo, busca datos en el datatable
activo = ds.Tables("usuarios").Rows(0)(4)
If activo <> 1 Then
MessageBox.Show("Usuario Inactivo", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
'pasa los valores del datatable, el usuario y nivel de usuario
nivel = ds.Tables("usuarios").Rows(0)(0)
usuariov = ds.Tables("usuarios").Rows(0)(2)
MessageBox.Show("Bienvenido al sistema", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information)
Dim f1 As New frmprincipal
Me.Hide()
f1.Show()
End If
End If
Catch ex As Exception
'captura si ocurre una error en la operación
MsgBox(ex.ToString)
End Try
End Sub
End Class
bien ya esta la entrada al sistema, ahora vamos a bloquear las opciones segun el nivel de usuario:
Public Class frmprincipal
Private Sub frmprincipal_FormClosing(ByVal sender As Object, ByVal e AsHandles Me.FormClosing
System.Windows.Forms.FormClosingEventArgs) 'al momento de cerrar la ventana cierra toda la aplicacion
Application.Exit()
End Sub
Private Sub frmprincipal_Load(ByVal sender As System.Object, ByVal e As Handles MyBase.Load
System.EventArgs) 'Pasa los datos de la variable usuariov a el label de la barra de estado
Me.ToolStripStatusLabel1.Text = "USUARIO---->" + usuariov
If nivel = 2 Then
'si es mienbro bloquear menu Administrador
AdministradorToolStripMenuItem.Enabled = False
ElseIf nivel = 3 Then
'si es invitado bloquear el menu Administrador y Mienbro
AdministradorToolStripMenuItem.Enabled = False
MienbroToolStripMenuItem.Enabled = False
Else
Exit Sub
End If
End Sub
End Class
ok con esto termino este blog , espero que les haya servido, mas adelante estare publicando nuevos manuales para ayudar los estudiantes el manejo de herraminetas de programacion.
para alguna duda o consulta = julio_06_20@hotmail.com
Loarte Huerto Julio