Empiezo a utilizar ASP, baje un código para poder restringir páginas a usuar

edgar
04 de Diciembre del 2001
Empiezo a utilizar ASP, baje un código para poder restringir páginas a usuarios pero no me funciona...

Empiezo a utilizar ASP, baje un código para restringir el acceso de usuarios a páginas, baje un código para poderlos validar pero me sale el siguiente error:
Response object error 'ASP 0156 : 80004005'
Header Error
/1/password/login.asp, line 58
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.

No se en si el código este mal o algo estoy haciendo mal. La siguiente información es el código que estoy utilizando:
login.asp
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<%if request.form("usuario")="" then%>
<form method="POST" action="login.asp">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align="center"><%=request.querystring("msg")%></p>
<div align="center">
<center>
<table border="0" width="50%" bgcolor="#F2F2F2">
<tr>
<td width="100%" colspan="2" bgcolor="#0000FF">
<p align="center"><font color="#FFFFFF">Login</font></td>
</tr>
<tr>
<td width="50%">Usuario:</td>
<td width="50%"><input type="text" name="usuario" size="20"></td>
</tr>
<tr>
<td width="50%">Password: </td>
<td width="50%"> <input type="password" name="password" size="20"></td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center"><input type="submit" value="Enviar" name="B1"></td>
</tr>
</table>
</center>
</div>
</form>


<%else
'eliminamos las posibles comillas de la entrada
'para evitar la introducción de sentencias SQL
usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("password.mdb"))
set rs = CreateObject("ADODB.Recordset")
sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'"
'response.write sqltxt
rs.Open sqltxt, conn
if not rs.eof then
' nos ha devuelto un registro, ahora miraremos si es valido
' con ello evitamos el ataque típico SQL
if rs("usuario")=usuario and rs("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("autorizacion")=1
response.redirect "default.asp"
end if
else
session("autorizacion")=-1

end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if session("autorizacion")=-1 or session("autorizacion")="" then
' no hemos encontrado el registro
' eso indica que el usuario y/o la password son erroneos
' response.redirect "login.asp?msg=Usuario%20o%20password%20incorrecta"
response.redirect "login.asp"
end if

end if%>

</body>
</html>
En cada una de las páginas que queramos que requieran autorización previa checaremos esa variable de session y permitiremos el paso si el chequeo es correcto o redirigiremos al usuario a la página de identificación en caso contrario.
<% if session("autorizacion")<>1 then
response.redirect "login.asp"
end if%>

No estoy seguro de estar utilizando el procedimiento correcto, probablemente sea mas factible hacer este tipo de cosas con cookies?, me podrían orientar en esto por favor, de antemano muchas gracias.
Edgar

alex
04 de Diciembre del 2001
Creo q lo mas fácil, antes por supuesto de las cookies, es que intentes hacer eso con Dreamweaver y verás lo fácil q es, mirate despues el código y lo intentas hacer tu, pero desde luego para mi es mas facil hacerlo con variables de sesión que con cookies, espero q te sirva de algo y si no me lo dices q ya se solucionará, un saludo.

edgar
04 de Diciembre del 2001
A... y como serian los pasos para empezar a restringir varias páginas desde Dreamweaver... gracias, saludos.