Foros del Web » Programando para Internet » ASP Clásico »

Menú con control de usuarios?

Estas en el tema de Menú con control de usuarios? en el foro de ASP Clásico en Foros del Web. Hola! Estoy construyendo una página de menú, que direcciona a distintas páginas restringidas por usuario (es decir, cada usuario tiene privilegios sobre sólo algunas páginas, ...
  #1 (permalink)  
Antiguo 18/06/2004, 08:30
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 22 años
Puntos: 0
Pregunta Menú con control de usuarios?

Hola!

Estoy construyendo una página de menú, que direcciona a distintas páginas restringidas por usuario (es decir, cada usuario tiene privilegios sobre sólo algunas páginas, no todas)

He tratado de validar desde la página cargada que el usuario actual tenga acceso, pero he tenido problemas... lo he intentado hacer con variables de sessión y de cookies, pero siempre de una u otra forma pierdo el control

podría alguien recomendarme alguna forma de hacer esto? lo único que necesito es que si el usuario escribe la dirección de una página restringida en el navegador, esta valide si este usuario puede o no verla...

Gracias!
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #2 (permalink)  
Antiguo 18/06/2004, 09:21
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
con cookies yo tengo algo similar y lo valido con un dato de la cookie que permite un nivel de usuario (donde le doy los privilegios)

Dim Nivel
Nivel = request.cookies("sitio")("nivel")
Select Case Nivel
Case 1:
'le muestro los datos para nivel 1
Case 2:
'le muestro los datos para nivel 2
Case 3:
'le muestro los datos para nivel 3
Case Else:
'si no tiene cookie lo mando de paseo hasta que inicie sesion
Response.Redirect ("login.asp")
End Select

Ve si funciona, en realidad como solo mencionaste que lo habias intentado, pero como no dijste como, te mando esto, en caso de que no te resulte, nos cuentas
__________________
Gigio
  #3 (permalink)  
Antiguo 18/06/2004, 09:25
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 22 años
Puntos: 0
Hola, gracias por tu respuesta...

Eso validación la haces en el menú? por que si es así, ya tengo algo parecido, y usando cookies también...

Pero lo que yo necesito es algo para la página, es decir, si tengo un menú.asp con opciones 1.asp, 2.asp y 3.asp, quiero que si el usuario se vá directamente a la página 1.asp y no está logueado, no lo deje pasar... lo mismo si está logueado, pero no tiene acceso a esa página...

Alguna idea?

Gracias!
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #4 (permalink)  
Antiguo 18/06/2004, 10:19
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
el codgio que te envie lo puedes colocar en una pagina inicio.asp, y usar una sola pagina para todo (en vez de tener 1.asp, 2.asp, 3.asp, etc)

Dim Nivel
Nivel = request.cookies("sitio")("nivel")
Select Case Nivel
Case 1:
'agreagas el codigo de 1.asp
Case 2:
'agreagas el codigo de 2.asp
Case 3:
'agreagas el codigo de 3.asp
Case Else:
'si no tiene cookie le presentas el formulario para que inicie sesion
End Select

bueno... espero que te sirva
__________________
Gigio
  #5 (permalink)  
Antiguo 18/06/2004, 10:45
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 22 años
Puntos: 0
Si, me sirve, pero el problema que el código de las otras páginas no es muy sencillo, y tienen varias consultas de por medio, por eso prefiero tenerlo separado...

Gracias de cualquier forma.
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #6 (permalink)  
Antiguo 18/06/2004, 11:53
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 22 años
Puntos: 1
Hay varias opciones, todo depende de si el control de privilegios se basa en grupos o individualmente, es decir:

1. CONTROL DE ACCESO POR GRUPOS
Crear varios tipos de usuarios con sus privilegios (por ejemplo: administradores con nivel 1, autorizados con nivel 2, usuarios con nivel 3, etc), y crear las páginas *.asp donde cada una de ellas tenga un nivel de acceso diferente.
Para ello, tendrías que crear una BBDD donde estarían los usuarios con sus datos personales, y además un camo extra, donde iría el nivel que tiene(1, 2, 3, etc)
Luego, cuando un usuario se ha identificado correctamente, se recupera el valor del campo NIVEL y se le asigna una variable de sessión (que no se pierde hasta que el cliente cierra el navegador o transcurre cieto tiempo desde la última acción en el servidor)
Posteriormente, en cada página que hayas creado, puedes poner este sencillo código para dejar "pasar" o "denegar" el acceso:

Ejemplo, supongamos que un usuario se ha identificado y tiene un nivel 3 (USUARIO) e intenta acceder a la página ADMIN.ASP que para acceder a ella se debe de tener un acceso de como mínimo 2 (AUTORIZADO)

Tan simple como añadir al principio de la página ADMIN.ASP este sencillo código para redirigir a la página ERROR.HTML al usuario si no tiene permiso de acceso:

<%
If Session("nivel") > 2 Then
response.redirect ("error.html")
End if
%>

2. CONTROL INDIVIDUAL
Normalmente se utiliza para webs donde por ejemplo un cliente tenga contratados unos servicios en concreto, y solo se muestren aquellas opciones a las que tiene acceso (creo que esta es la que buscas tú)

Para ello, tendrías que crear una BBDD con los datos de los usuarios, y además, en la misma tabla (u otra tabla siempre y cuando esté relacionada) varios campos más con los servicios disponibles, y como valor 1 si lo tiene contratado o 0 si no lo tiene ocntratado.

Luego, en la página web que deseas comprobar el nivel, y utilizando la misma metodología de control que en el caso anterior, el usuario se identifica, se recuperan los valores de los servicios contratados, y solo se muestran aquellos donde el usuario tenga un valor 1, en caso contrario, simplemente, no se muestran.

Weno, paro, que me canso....

Espero que te haya servido de ayuda, cuando te decidas por un tipo de administración en concreto, nos lo comentas, y veremos que podemos hacer ;)

Un saludo
  #7 (permalink)  
Antiguo 18/06/2004, 12:25
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago de Chile
Mensajes: 115
Antigüedad: 22 años
Puntos: 0
De acuerdo

Hola!

Sí! has dado en el clavo, el 2do sistema es el que manejo yo... pero el problema que tengo, es que como la sesión no dura mucho, el usuario al estar en su página por mucho rato, y actualizar el contenido (son datos de un sistema de producción, por lo que varian mucho), la página no encuentra la variable de sesión y vuelve atrás... traté de corregir esto usando cookies, y me funcionó a medias, pero quiero ver si hay un sistema mejor, de manera de ya no tener problemas con eso...

Muchas gracias por tu ayuda...
__________________
~[ The Hard ]~
- Sólo sé que nada sé...
- Hay un placer en la locura, que sólo los locos conocen...
- ¿Trabajas para vivir, o vives para trabajar?
  #8 (permalink)  
Antiguo 18/06/2004, 12:43
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 22 años
Puntos: 1
Aumenta el tiempo de duración de la Variable de Sesión

Pon esta linea al principio de la página ASP para aumentar a 40 minutos la duracion de la variable de sesión

<% Session.Timeout = 40 %>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:20.