Nose

Solo disponible en BuenasTareas
  • Páginas : 15 (3502 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de septiembre de 2012
Leer documento completo
Vista previa del texto
Validar Usuario y Password en C # 2005 y SQL Server
En este sección mostraremos cómo validar el usuario y el password (correctamente) comprobandolo desde una base de datos de SQL Server. La tabla de ejemplo es "Customers" de la base de datos Northwind, los campos que usaremos como parametros seran "CustomerID" (Usuario) y "PostalCode" (Password), recordemos que ambos campos se encuentran dentrode la tabla "Customers". Este ejemplo realiza la comprobación del usuario y el password ingresado a través del formulario, al introducir ambos datos correctamente y presionando el boton ingresar la aplicación emitira un mensaje de bienvenida junto al nombre del usuario (el nombre de usuario es el campo "CompanyName"), en caso contrario emitira un mensaje indicandote que los datos no son correctos.En primer lugar crearemos un proyecto en C Sharp 2005 (C#) y lo denominaremos DataAccess, luego pasamos a crear un windows forms al cual llamaremos frmIngreso, una vez creado el formulario agregamos los controles, al terminar de ingresar los controles necesarios el formulario debe de quedar como la siguiente figura.

Formulario frmIngreso

A continuación mostramos los "namespaces" (loscuales son declarados en la cabecera del formulario) y luego declaramos las variables que usaremos dentro de la aplicación para la manipulación de datos (las variables la declaramos después de la clase del frmIngreso "public partial class frmIngreso : Form").

NameSpaces

Variables para la manipulación de datos

Una vez diseñado el formulario, pasamos a codificar el evento "Click" del botón"Ingresar" al cual lo denominamos "btnIngresar", dentro de este botón realizaremos el llamado a la función "VerificarUser", al presionar el botón hara el envio de dos variables para la comprobación dentro de la tabla Customers, luego de la validación se pasara a emitir un mensaje de acuerdo a las filas obtenidas. En la siguiente figura se encuentra el código del botón.

private voidbtnIngresar_Click(object sender, EventArgs e)
{
if (VerificaUser(this.txtUsuario.Text, this.txtClave.Text))
{
if (Filas == 1)
{
MessageBox.Show(
"Bienvenido " + Usu + " ",
"Acceso al Sistema",
MessageBoxButtons.OK,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1);
}
else
{
MessageBox.Show(
"Los datos no son Corectos !!! ",
"Acceso al Sistema",
MessageBoxButtons.OK,MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1);
}
}
} |

Código del Evento Click del btnIngresar

El siguiente paso es codificar la función "VerificarUser", donde evaluaremos ambas variables, primero conectaremos a la base de datos de SQL Server, despues definimos la cadena que vamos a usar para comprobar si el usuario y el password son correctos, para esto se utiliza parámetros paraevitar la inyección de código, luego defininimos el comando que vamos a ejecutar ceando los parámetros y asignandolos a los valores recibidos. Ejecutamos la consulta con ExecuteReader devolviendonos las filas obtenidas. En la siguiente figura se encuentra el código de la función.
private bool VerificaUser(string user, string pass)
{
string MyUser = user.Trim();
//asignamos la cadena deconexión a la variable
Str = ("Server=Srv01;Database=Northwind;uid=sa;pwd=;");
//instanciamos la variable conexion
Cn = new SqlConnection();
//declaramos la conexion
Cn.ConnectionString = Str;
System.Text.StringBuilder Sel = new System.Text.StringBuilder();
Sel.Append("SELECT * FROM Customers "); //Count(*)
Sel.Append("WHERE CustomerID = @USER AND PostalCode = @PASS ");
Cm = newSqlCommand(Sel.ToString(), Cn);
Cm.Parameters.Add("@USER", SqlDbType.NChar, 5);
Cm.Parameters.Add("@PASS", SqlDbType.NVarChar, 10);
Cm.Parameters["@USER"].Value = MyUser;
Cm.Parameters["@PASS"].Value = pass;
Cn.Open();
Dr = Cm.ExecuteReader();
Filas = Convert.ToInt32(Dr.HasRows); //obtiene las filas de la consulta
if (Dr.Read())
Usu = Convert.ToString(Dr[1]);
Cn.Close();
Dr.Close();
return true;...
tracking img