Ver Mensaje Individual
  #91 (permalink)  
Antiguo 15/08/2004, 12:36
choco_cu
 
Fecha de Ingreso: mayo-2004
Ubicación: Ciudad de la Habana
Mensajes: 85
Antigüedad: 20 años, 6 meses
Puntos: 0
hola para todos los que le interesa la variante esa que dice urjose de otros sistema de usuario y contraseña con session y que el dice debajo que lo malo es que est'a en ingles aqui les envio la primera parte traducida al español.


A menudo como Desarrollador WEB te encuentras en situaciones donde quieres proteger areas especificas de tu sitio de ser vista por todos. Un buena manera de hacerlo es agregando proteccion por password a tu Sitio. Lo primero que debes hacer es crear una página de logeo, la cual sería algo como esto:


<% Sub ShowLogin %>
<form name=form1 action=login.asp method=post>
User Name : <input type=text name=username>
Password : <input type=password name=userpwd>
<input type=hidden name=login value=true>
<input type=submit value="Login">
</form>
<% End Sub %>

El código anterior simplemente crea un formulario. La segunda caja de texto tiene el tipo password Type=Password, lo que hace que lo que el usuario que haya escrito aparesca como estrellas (como estas ******). También anotar que si quieres que la acción de l formulario sea la misma página. Entonces no necesitamos una segunda página para manipular el chequeo del password. Hablar'e del elemento Hidden en el formulario después. Tambié ver'a por que pusimos el formulario dentro de una sub rutina m'as adelante.

Antes de introducir el codigo para chequear y ver si el usuario y el password son correctos necesitamos agregar algo de codigo en login.asp para chequear y ver si el formulario fue enviado.

Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work
Session("UserLoggedIn") = ""

If Request.Form("login") = "true" Then
CheckLogin
Else
ShowLogin
End If

Este codigo ira a revisar si en login.asp el formulario fue enviado. Si lo fue entonces podemos chequear el logeo, si no entonces mostramos el formulario de logeo.

Luego agregaremos el codigo subrutina del chequeologeo para chequear y ver si el usuario y el password son correctos

Sub CheckLogin
If LCase(Request.Form("username")) = "guest" And LCase(Request.Form("userpwd")) = "guest" Then
Session("UserLoggedIn") = "true"
Response.Redirect "protectedpage.asp"
Else
Response.Write("Login Failed.<br><br>")
ShowLogin
End If
End Sub

el codigo anterior chequeara para asegurarse de que se ha entrado el login correctamente. para configurar la Variable de Sesion "UserLoggeddln" igual a "" estamos basicamente desconectando al usuario. Lo unico que nos falta por hacer es escribir el codigo a poner en la cabecera de la pagina protegida para chequear y ver si el usuario esta logeado.

Response.Expires = -1000 'Hace que el explorador no cree cache de esta pagina
Response.Buffer = True 'activa el buffer para el contenido asi nuestro Response.Redirect trabajara

If Session("UserLoggedIn") <> "true" Then
Response.Redirect("login.asp")
End If

Ejemplo de lo anteriormente expuesto.

codigo para login.asp[Top]

<%
Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work
Session("UserLoggedIn") = ""
If Request.Form("login") = "true" Then
CheckLogin
Else
ShowLogin
End If


Sub ShowLogin
%>
<form name=form1 action=login.asp method=post>
User Name : <input type=text name=username><br>
Password : <input type=password name=userpwd><br>
<input type=hidden name=login value=true>
<input type=submit value="Login">
</form>
<%
End Sub

Sub CheckLogin
If LCase(Request.Form("username")) = "guest" And LCase(Request.Form("userpwd")) = "guest" Then
Session("UserLoggedIn") = "true"
Response.Redirect "protectedpage.asp"
Else
Response.Write("Login Failed.<br><br>")
ShowLogin
End If
End Sub
%>

protectedpage.asp
<%
Response.Expires = -1000 'Makes the browser not cache this page
Response.Buffer = True 'Buffers the content so our Response.Redirect will work

If Session("UserLoggedIn") <> "true" Then
Response.Redirect("login.asp")
End If
%>

This page is password protected. If you are reading this you entered <br>
the correct name and password.

Traducción: Choco_cu