fichero: login.aspx
tendrá un aspecto mas o menos así:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Logado</title>
<link href="StyleSheet1.css" type="text/css" rel="stylesheet" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" Height="156px" BackColor="#5599FF">
<div style="text-align:right"><h2>Alba Informática S.C.I.</h2></div>
</asp:Panel>
</div>
<div>
<asp:Panel ID="Panel2" runat="server" CssClass="panel">
<div> </div>
<div class="textos">Codigo</div>
<div>
<asp:TextBox ID="TextBox2" runat="server" Width="282px" CssClass="controles"></asp:TextBox>
</div>
<div> </div>
<div class="textos">Password</div>
<div>
<asp:TextBox ID="TextBox3" runat="server" Width="282px" CssClass="controles"></asp:TextBox>
</div>
<div> </div>
<div>
<asp:Label ID="lblSms" runat="server" CssClass="textos" Text="Bandeja de notificaciones"></asp:Label>
</div>
<div> </div>
<div>
<asp:Button ID="Button1" runat="server" CssClass="botones" OnClick="Button1_Click" Text="Login" Width="91px" />
</div>
<div> </div>
</asp:Panel>
</div>
</form>
</body>
</HTML>
Pues bien desde el evento Button1_Click que hemos definido previamente
podemos poner un código que valide los datos y nos redireccione a otra web o bien nos muestre un mensaje con lo que ha sucedido.
protected void Button1_Click(object sender, EventArgs e)
{ string codigo = TextBox2.Text; //leemos el contenido de cada control edit
string password = TextBox3.Text;
if (codigo == "sa") //si en el primer control hemos escrito "sa"
{Session["logado"] = true; //crea una variable de sesion (visible en todas las webs)
Response.Redirect("articulos.aspx") //redireccionamos a otra web
}else
{ lblSms.Text = "Datos incorrectos. Intentenlo de nuevo por favor.";
}
}
En el fichero articulos.aspx
Validamos que tengamos acceso a la web (que se exista una variable de sesión con el valor correcto) en otro caso obligamos a que se logue redireccionándolo a la web de logado.
Esta validación se tendrá que incluir en todas paginas que queramos que no se acceda sin logarse previamente
protected void Page_Load(object sender, EventArgs e)
{
//IMPORTANTE. Cuando se lee una variable de sesión
//hay que realizar una conversión de tipos (casting) al tipo del valor que almacena
//en este caso es un boolean por esto se hace (bool) delante de la variable de sesion
if ((Session["logado"] == null) || ((bool)Session["logado"] == false))
{ Response.Redirect("login.aspx");
}
Jesús, exactamente lo que buscaba. Muchas gracias :D
ResponderEliminarDe nada Andres me alegro que te sea de ayuda. Un saludo
EliminarExcelente, sencillo y bien explicado.
ResponderEliminarGracias juan. Si en cualquier articulo teneis duda, podis plantearla por los comentarios.
EliminarUn saludo
Que tal Jesus,
ResponderEliminarGracias por postear esta solución, estoy retomando de nuevo esto de la programación y tu post me ayudo y me ahorro un buen de tiempo.
Saludos
De nada aquí estamos para echarnos un cable entre todos y poder avanzar en nuestros proyectos. Gracias a ti por tu comentario.
EliminarY AORA COMO CIERRO LA CESION
ResponderEliminar