Control de los datos de autentificación en ASP

  • Por
Página que recibe los datos del formulario de autentifiación, comprueba si son correctos y actua en consecuencia.
Esta página será encargada de decidir si los datos de autentificación son correctos y actuar en consecuencia. Dependiendo del nivel de seguridad que queramos aplicar a nuestra aplicación, esta página será más o menos complicada.

En un principio no deseo liar mucho las cosas, así que explicaré una versión muy reducida de este archivo de control, en la que se comprueba si el usuario y contraseña sean dos valores específicos. Esto tiene la desventaja que sólo podemos crear un usuario/contraseña distinto y no un sistema que permita muchos usuarios distintos. Bueno, en realidad si que permitirá que accedan muchos usuarios a la vez, pero utilizando todos el mismo nombre de usuario y contraseña.

En aplicaciones más avanzadas podríamos tener en una base de datos una lista de usuarios con sus contraseñas. Entonces, en este archivo de control deberíamos hacer una búsqueda para ver si existe una correspondencia en la base de datos de ese usuario con esa contraseña. Esto lo veremos en adelante, ahora nos quedamos con la versión reducida.

Después de la comprobación podrán pasar dos cosas:

- Si los datos son correctos, definirá una variable de sesión que servirá para saber que ese visitante ha sido validado correctamente y tiene permiso para acceder a la aplicación. Además redireccionará al visitante a la página de la aplicación restringida.

- Si el usuario/contraseña no era correcto, se envía al navegador a la página de inicio pasando la variable errorusuario=si, que indica que ha habido un error en la autentificación.

El código se puede ver a continuación:

<%
' miro a ver si la autentificacione es correcta
if (request.form("usuario") = "pepe" and request.form("contrasena") = "popop") then
    'Todo OK!
    'coloco las variables de sesion
    session("autentificado") = "si"
    'redirecciono a la página de la aplicación
    response.redirect "aplicacion.asp"
else
    response.redirect "index.asp?errorusuario=si"
end if
%>


Referencias: Tenemos más información sobre dos temas que estamos tratando en este artículo:

- Las variables de sesión: http://www.desarrolloweb.com/articulos/255.php
- Recoger datos de un formulario: http://www.desarrolloweb.com/articulos/253.php
- Redirigir al navegador a una URL: http://www.desarrolloweb.com/articulos/1208.php

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Jaime

16/6/2003
¿Cuando vais a publicar el sistema de autentificación en ASP, pero en lugar de solo un usuario y contraseña, que se pueda buscar en una Base de datos?

RESPUESTA

Esa parte ya está publicada: www.desarrolloweb.com/articulos/1204.php

De todos modos, esperamos seguir publicando otras mejoras al sistema.

gerardo

04/3/2004
Ya hice todo eso y si hace lo que dice, pero ocurre un problema...

hice una pagina de acceso, si pasa abre la pagina, pero si yo copio esa direccion de la pagina que habrio en otra pagina que tengo abirta en antes de iniciar secion abre de todas forma sin llevarme al modulo de seguridad..

en cambio si abro una nueva pagina de mi navegador y coloco la direccion me envia a la pagina de acceso...

como puedo hacer que sea cual sea la situacion siempre que quiera entrar a una pagina donde necesite autentificacion me lleve a la de acceso, (recuerden el problema es si entro y copio la direccion y la coloco en otra secion de mi navegador)...

Seria bueno hacer que cuando yo salga de cada pagina se borre la variable de la session o algo asi...

Luis

23/9/2004
Tengo un problema, como hago una vez válida la contraseña en la instrucción para redirecionar a la página que quiero ..lo haga de forma FULL SCREEN?, porque hasta ahora solo he logrado que lo haga de forma normal, tambien una cosa aparte. en un ejemplo de página de contraseñas con asp,que descargue a mi pc, trae una pequeña base de datos access con contraseñas para el ejemplo, le cambie el nombre a la base, tablas y campos, pero el ejemplo dejo de funcionar,esto porque tiene un dichoso "stored procedure" por más que he intentado, te parecerá tonto, no he encontrado donde estan esas instrucciones para poder modificarlas para que concuerden con los nuevos nombres que puse a la base de datos..donde están?¡ en la base de datos? en el codigo asp? no las encuentro!! gracias de antemano por la ayuda que me puedas brindar.

loenardo

08/9/2005
Por que al momento de colocar la capa de seguridad me genera un error en la coneccion, aque se debe

David

11/10/2005
Al intenetar acceder al control.asp me da la opcion descargar el archivo ¿por que ? ¿ y como puedeo solucionarlo?

deivit

01/2/2006
y cómo sería enviar un e-mail para activar la cuenta del registrado? es decir, para que no puedan meter una dirección de correo cualquiera, y nosotros poder verficiarla.