Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 Acceso restringido para múltiples usuarios
 Foro Bloqueado  Tema Bloqueado


Autor Temas
placca11
Starting Member

España
9 Posts
Mensajes - 03 Sep 2007 :  09:59:30  Ver Perfil  Enviar Email
Hola, tengo un código ASP que me funciona para autentificar usuarios que entran en una web mediante nombre y contraseña, validados por una base de datos. El problema es que este sistema solo funciona para entrar a una misma web.
Lo que yo quiero es que cada usuario identificado entre a una web distinta y el código que tengo solo me sirve para que entren en la misma web.
¿Me podríais decir qué código debo añadir? Agradeceré si me podéis escribir el código ya que estoy empezando y no sé mucho todavía.

CÓDIGO QUE TENGO Y FUNCIONA PARA AUTENTIFICARSE PARA VISITAR UNA MISMA WEB:


INDEX.asp:
Página con el formulario que pregunta USUARIO y CONTRASEÑA


CONTROL.asp:
Página que conecta el formulario con la base de datos y permite entrar o no a la aplicación:

<%
ssql = "select * from usuarios_autentificacion where nombre_usuario='" & request.form("usuario") & "' and clave_usuario='" & request.form("contrasena") & "'"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "base"
set RS = Conn.Execute(sSQL)

if (not RS.eof) then
session("autentificado") = "si"
response.redirect "aplicacion.asp"
else
response.redirect "index.asp?errorusuario=si"
end if

Conn.Close
%>


SEGURIDAD.asp:
Página de seguridad que se carga antes de entrar a la aplicación para permitir entrar solamente a usuarios identificados:

<%
Response.Buffer = true
' compruebo que tengo la variable de sesion creada y con el dato correcto
if session("autentificado") <> "si" then
response.redirect "index.asp"
response.end
end if
%>


APLICACION.asp:
Emplieza con este código:
<!--#include file="seguridad.asp"-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>...

MUCHAS GRACIAS A TODOS!!

Admin
Forum Admin

España
229 Posts
Posted - 03 Sep 2007 :  10:40:38  Ver perfil  Enviar e-mail
Lo que tienes que hacer es crear un campo mas en la tabla de usuarios que contenga un codigo que indique hacia donde quieres redireccionar al usuario, luego cuando valides el usuario le envias con un response.redirect a la pagina que indique dicho codigo.

Acuerdate de proteger cada una de las paginas distino con una comprobación de dicho codigo para que no te entre ningun usuario no autorizado a dicha página.Inicio Pagina

placca11
Starting Member

España
9 Posts
Posted - 04 Sep 2007 :  10:09:03  Ver perfil  Enviar e-mail
Hola, gracias por la respuesta pero no acabo de enterder cómo lo tengo que hacer:
"crear un campo mas en la tabla de usuarios que contenga un codigo que indique hacia donde quieres redireccionar al usuario", ¿cómo tiene que ser éste código? ¿Me puedes poner un ejemplo? ¿Serviria poner solamente el nombre de la página en este campo? Por ejemplo: "aplicacion.asp"
"luego cuando valides el usuario le envias con un response.redirect a la pagina que indique dicho codigo" ¿Esto lo tengo que poner en la página CONTROL.asp que ahora ya tengo que conecta el formulario con la base de datos? Ahora tengo el código: response.redirect "aplicacion.asp"
que solo me sirve para esta página. ¿Cómo se tiene que poner para que sirva para todas las demás?
Gracias mil!

Inicio Pagina

DonGato
Moderator

España
263 Posts
Posted - 05 Sep 2007 :  00:58:50  Ver perfil  Enviar e-mail  Visit DonGato's Homepage
asi es, con poner el nombre de la pagina te valdria, luego solo tendrias que hacer un
response.redirect(rs("direccion"))

Inicio Pagina

placca11
Starting Member

España
9 Posts
Posted - 05 Sep 2007 :  09:58:08  Ver perfil  Enviar e-mail
Hola, creo que tengo alguna cosa mal porque he provado lo que me dice DonGato y no me funciona.

En la base de datos he añadido un campo que se llama "direccion" y que contiene las páginas "aplicacion01.asp", "aplicacion02.asp", "aplicacion03.asp", ...

Luego he puesto este código en la web "control.asp":

<%
ssql = "select * from usuarios_autentificacion where nombre_usuario='" & request.form("usuario") & "' and clave_usuario='" & request.form("contrasena") & "'"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "base"
set RS = Conn.Execute(sSQL)

if (not RS.eof) then
session("autentificado") = "si"
response.redirect(rs("direccion"))
else
response.redirect "index.asp?errorusuario=si"
end if

Conn.Close
%>

---¿Sabéis decirme si existe algun error?---

Gracias!

Inicio Pagina

DonGato
Moderator

España
263 Posts
Posted - 05 Sep 2007 :  16:18:04  Ver perfil  Enviar e-mail  Visit DonGato's Homepage
pues a simple vista no veo error alguno, deberia funcionar, pero haz una cosa por probar algo.
guarda en el campo direccion la pagina donde se tiene que ir excepto la extension y se la concatenas en el response, quiero decir
response.redirect(rs("direccion")&".asp")

Inicio Pagina

placca11
Starting Member

España
9 Posts
Posted - 06 Sep 2007 :  09:20:27  Ver perfil  Enviar e-mail
Hola DonGato y demás lectores! Muchas gracias a todos!!! Al final ha funcionado!!!! El problema era que guardaba en el campo direccion la pagina entre comillas. He hecho lo que me ha dicho DonGato y todavía no funcionaba así que he pensado que serían las comillas y... funcionó!!! Gracias y hasta otra!!!

Inicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar