Foros del Web » Programación para mayores de 30 ;) » .NET »

Session ASP.NET

Estas en el tema de Session ASP.NET en el foro de .NET en Foros del Web. Saludos!, Estoy programando una aplicación con Visual Studio 2008 en C#, tengo una pagina de login la cual revisa si el usuario es correcto y ...
  #1 (permalink)  
Antiguo 17/11/2009, 19:12
 
Fecha de Ingreso: noviembre-2009
Mensajes: 29
Antigüedad: 14 años, 5 meses
Puntos: 0
Session ASP.NET

Saludos!,

Estoy programando una aplicación con Visual Studio 2008 en C#, tengo una pagina de login la cual revisa si el usuario es correcto y creo unas variables session:

Código:
Session.Add("usuario", VALOR);
Session.Add("privilegio", VALOR);
luego me redirecciona con response.redirect a otra pagina donde tengo un boton cerrar sesion la cual borra la session con Session.abandon();

Cada pagina tengo en su evento Page_Load:

Código:
if (Session["usuario"] == null || (String)(Session["privilegio"]) != "admin")
{
    Response.Write("<script language=javascript> history.back(); </script>");
}
EL cual si no corresponde me envia a la pagina anterior del usuario.

El problema surge cuando me registro con un usuario admin (por ejemplo) y entro a una pagina que corresponde solo al administrador, luego cierro sesion y entro como otro usuario de menor privilegio, entra a su menu correspondiente pero en el browser si escribo la pagina que corresponde solo al administrador esta logra entrar!!!, y solo ocurre si entre con el administrador antes, es decir, como que se guarda "algo" que permite el ingreso.

Alguna idea de mi problema??, u otra alternativa para solucionar esto (no se si el control login de asp.net permite esto, si alguien sabe algun tutorial se agradecería!)

Gracias!
  #2 (permalink)  
Antiguo 17/11/2009, 19:33
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Session ASP.NET

deberia ser un condicionante en tu pagina aedministrativa que exista un usuario y sea admin

en el pageload

if (Session["usuario"] != null && (String)(Session["privilegio"]) == "admin")
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 17/11/2009, 20:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 29
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Session ASP.NET

Gracias por tu respuesta, pero el codigo

Código:
if (Session["usuario"] == null || (String)(Session["privilegio"]) != "admin")
{
    Response.Write("<script language=javascript> history.back(); </script>");
}
Esta solamente en una pagina que corresponde solo a adminsitrador, en el caso de otra pagina que no corresponde a admin tengo:

Código:
if (Session["usuario"] == null || (String)(Session["privilegio"]) != "otro")
{
    Response.Write("<script language=javascript> history.back(); </script>");
}
  #4 (permalink)  
Antiguo 17/11/2009, 20:57
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Session ASP.NET

ve lo que te digo y debuggea porq el problema es tu condicional no hay mas.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 17/11/2009, 23:09
 
Fecha de Ingreso: noviembre-2009
Mensajes: 29
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Session ASP.NET

Eso estoy haciendo, y acabo de notar que en firefox el codigo funciona sin problemas, si no tiene "privilegio" asociado ejecuta el javascript que redirecciona a otra pagina. Además acabo de notar que es en el Internet explorer 8 donde no ocurre eso, y lo mas raro es que carga la pagina (que supuestamente no debiera cargar) y al ejecutar un control de esa pagina no redirecciona por que no tiene privilegios.

Según lo anterior me di cuenta que al escribir (copy & paste) la url en el browser no ejecuta el Page_load de la pagina por lo que no ejecuta el if y no redirecciona!!, esto ocurre en el explorer 8, que raro....

Si alguien tiene alguna idea se agradece que la escriba!

saludos
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 03:38.