Buscando en Internet me he dado cuenta que existe poca información(o al menos en español) de como usar el control
login de
asp.net con una
base de
datos propia.
De hecho la manera que les mostrare tambien puede ser usada creando nosotros mismos los controles de login.
El proyecto fue desarrollado usando Visual Estudio 2010 y SqlExpress.
La
base de
datos que usare para este ejemplo llamada
Database y solo cuenta con una
tabla usuarios y con los campos
usuario y
contraseña.
Bueno lo primero que aremos es crear un proyecto
web vació con lenguaje de programación
c# (esto ya lo tienen que saber hacer por eso no pongo imágenes).
Una vez hecho esto se creara el proyecto con la pagina
default y el
archivo de
configuración(web.config) en el cual agregaremos lo siguiente.
Lo primero seria la
conexión a la
bd y en el segundo bloque estamos configurando para que todo el sitio este bajo una
autentificación por medio de
forms.
También establecemos cual sera la pagina por defecto y cual la de login, de esta manera si el usuario no esta logueado se redirecciona a la pagina de login.
Una ves que hayamos hecho esto lo anterior, agregaremos una
clase a nuestro proyecto llamada
Autentificacion.cs
Y el código que tendrá nuestra clase sera el siguiente.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;
public static class Autentificacion
{
public static bool Autenticar(string usuario, string password)
{
//consulta a la base de datos
string sql = @"SELECT COUNT(*)
FROM Usuarios
WHERE usuario = @user AND contraseña = @pass";
//cadena conexion
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
{
conn.Open();//abrimos conexion
SqlCommand cmd = new SqlCommand(sql,conn); //ejecutamos la instruccion
cmd.Parameters.AddWithValue("@user", usuario); //enviamos los parametros
cmd.Parameters.AddWithValue("@pass", password);
int count = Convert.ToInt32(cmd.ExecuteScalar()); //devuelve la fila afectada
if (count == 0)
return false;
else
return true;
}
}
}
Como pueden observar lo único que se hace es crear un
método estático de tipo
bool que hace la
validación del usuario y devuelve
false si no se autentifico y
true si se autentifico correctamente.
Ahora lo que aremos es agregar un nuevo
web form al cual llamaremos
login y dentro de el ponemos el control
login.
Ahora nos vamos al
código de la pagina
login y ponemos lo siguiente.
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (Autentificacion.Autenticar(Login1.UserName, Login1.Password))
{
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet);
}
}
Lo que se hace es usar el evento
Authenticate del control
Login1 y dentro hacemos una validación de nuestro método
Autenticar de la clase
Autentificacion, pasandole como parámetros los datos del control
Login1, si la validación se hace correctamente lo redireccionamos a la pagina default.
Ahora en nuestra pagina
default lo único que aremos es agregar un
botón con el nombre
btncerrar que lo único que ara es cerrar la autenticacion. nos vamos al código de nuestra pagina
default y ponemos lo siguiente.
protected void Page_Load(object sender, EventArgs e)
{
//si se autentica mostramos mensaje y nombre de usuario
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
Response.Write("Bienvenido : " + User.Identity.Name);
}
}
protected void btncerrar_Click(object sender, EventArgs e)
{
//se borra la cookie de autenticacion
FormsAuthentication.SignOut();
//se redirecciona al usuario a la pagina de login
Response.Redirect(Request.UrlReferrer.ToString());
}
Lo que se hace en este código es mostrar el mensaje bienvenido y el nombre del usuario autentificado en el evento
load de la pagina, y luego en el evento del
botón lo que se hace es cerrar el inicio de sesión y redireccionarlo a la pagina de
login nuevamente.
Importante que en los códigos cs de las paginas login y default tiene que ponerse el siguiente espacio de nombres al principio.
using System.Web.Security;
Eso seria todo si ejecutamos nuestro proyecto nos tendría que funcionar.
Para probar el login el usuario es
user y la contraseña
123.
Y recuerden si necesitan una pagina web para su empresa, una aplicación web o de escritorio estamos a la orden pueden consultar Mis Servicios
Si quieren donarme para una soda lo pueden hacer aqui.