Sie sind auf Seite 1von 4

Inicio De Sesion Usando El Control Login Asp.

Net
viernes, 18 de mayo de 2012

Buscando en Internet me he dado cuenta que existe poca informacin(o al menos en espaol) 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 tablausuarios y con los campos usuario y contrasea. Bueno lo primero que aremos es crear un proyecto web vaci con lenguaje de programacin c#(esto ya lo tienen que saber hacer por eso no pongo imgenes). Una vez hecho esto se creara el proyecto con la pagina default y el archivo deconfiguracin(web.config) en el cual agregaremos lo siguiente. ?

1 2 3 4 5 6 7 8 9 10 11

<connectionstrings> <add name="default" connectionstring="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Data Instance=True" providername="System.Data.SqlClient"> </add></connectionstrings> <authentication mode="Forms"> <forms name="appNameAuth" path="/" loginurl="Login.aspx" defaulturl="Default.aspx" protection="All"> </forms></authentication> <authorization> <deny users="?"> </deny></authorization>

Lo primero seria la conexin a la bd y en el segundo bloque estamos configurando para que todo el sitio este bajo una autentificacin por medio de forms. Tambin 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 cdigo que tendr nuestra clase sera el siguiente. ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

using using using using using using

System; System.Collections.Generic; System.Linq; System.Web; System.Data.SqlClient; 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 contrasea = @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

23 afectada 24 if (count == 0) 25 return false; 26 else 27 return true; 28 } 29 30 } 31 32 } 33 34 35 36


Como pueden observar lo nico que se hace es crear un mtodo esttico de tipo bool que hace la validacin 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 cdigo de la pagina login y ponemos lo siguiente. ?

1 2 3 4 5 6 7 8 9

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 validacin de nuestro mtodo Autenticar de la clase Autentificacion, pasandole como parmetros los datos del control Login1, si la validacin se hace correctamente lo redireccionamos a la pagina default. Ahora en nuestra pagina default lo nico que aremos es agregar un botn con el nombrebtncerrar que lo nico que ara es cerrar la autenticacion. nos vamos al cdigo de nuestra pagina default y ponemos lo siguiente. ?

1 protected void Page_Load(object sender, EventArgs e) 2 { //si se autentica mostramos mensaje y nombre de 3 usuario 4 if 5 (HttpContext.Current.User.Identity.IsAuthenticated) { 6 Response.Write("Bienvenido : " + 7 User.Identity.Name); 8 } 9 } 10protected void btncerrar_Click(object sender, EventArgs 11e) 12{ //se borra la cookie de autenticacion 13 FormsAuthentication.SignOut(); 14 15 //se redirecciona al usuario a la pagina de login Response.Redirect(Request.UrlReferrer.ToString()); 16 } 17
Lo que se hace en este cdigo es mostrar el mensaje bienvenido y el nombre del usuario autentificado en el evento load de la pagina, y luego en el evento del botn lo que se hace es cerrar el inicio de sesin y redireccionarlo a la pagina de login nuevamente. Importante que en los cdigos cs de las paginas login y default tiene que ponerse el siguiente espacio de nombres al principio. ?

1 using System.Web.Security; 2
Eso seria todo si ejecutamos nuestro proyecto nos tendra que funcionar.

Das könnte Ihnen auch gefallen