Foros del Web » Programando para Internet » ASPX (.net) »

verificar session

Estas en el tema de verificar session en el foro de ASPX (.net) en Foros del Web. Hola, estoy pasando una aplicacion de ASP 3.0 a ASP.NET y tengo una duda con respecto a verificar si un usuario esta activo o no. ...
  #1 (permalink)  
Antiguo 24/06/2008, 15:37
 
Fecha de Ingreso: mayo-2004
Mensajes: 189
Antigüedad: 19 años, 10 meses
Puntos: 1
verificar session

Hola, estoy pasando una aplicacion de ASP 3.0 a ASP.NET y tengo una duda con respecto a verificar si un usuario esta activo o no.
En ASP 3.0 yo tenia un objeto session donde guardaba el nombre del usuario logeado y tenia un archivo que verificaba algo asi:

Código:
if session("usuario") = "" then
    response.redirect("finSesion.asp")
end if
que incluia (mediante INCLUDE) en todas las paginas donde se podia ingresar solo si se estaba logeado. Si se habia acabado la session del usuario, lo redireccionaba a una pagina donde le pedia logearse nuevamente.

Pues bien, en ASP:NET no existe esto del INCLUDE o al menos no lo veo muy adecuado.
¿Como puedo hacer para no tener que verificar en cada LOAD de las paginas el objeto session?
Probe modificando el web.config para que verifique si el usuario se logio, pero el tema es que necesito restringir solo algunas paginas del sitio, no todas; y el web.config me verifica en todas.

Hay alguna manera de llamar a una funcion o lo que sea para que verifique esto, y en caso de estar el sesion vacio, redireccione a una pagina determinada.

Gracias de antemano!!!!
Saludos
__________________
Nadie nacío sabiendo...
  #2 (permalink)  
Antiguo 25/06/2008, 01:04
 
Fecha de Ingreso: enero-2005
Mensajes: 140
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: verificar session

En el web.config puedes poner excepciones, es decir, que te pida autenticacion excepto para una serie de paginas.

Otra cosa que puedes hacer es que no te valide nada en la aplicacion y todas las paginas que necesitan autenticacion las metes en una carpeta con su propio web.config.

Otra manera es crear un objeto page que implemente esa operacion y hacer que todas las Paginas que quieras que hagan eso hereden de dicha clase.

Por Ejemplo:
Código:
//este seria tu clase personalizada
public class MyPage : Page
{
public overrides OnInit()
{
if (String.IsNullOrEmpty(Session["usuario"])
{
Response.Redirect("....");
}
}
}

// esta seria una de las paginas que quieres que hagan esa validacion(Defaut.aspx)
public class Default: MyPage
{

}
No se si me he explicado, es muy sencillo, aunque como te he dicho al principio la mejor manera de hacerlo es con el web.config.
  #3 (permalink)  
Antiguo 25/06/2008, 05:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 189
Antigüedad: 19 años, 10 meses
Puntos: 1
De acuerdo Respuesta: verificar session



Es muy buena la respuesta!!! la verdad que soy un poco nuevo en asp.net y no sabia, por ejemplo, que se pueden tener varios web.config para una aplicacion.
Esta me parece la mejor opcion ya que todas las paginas que necesitan autentificacion estan en una carpeta del dominio (www.midominio.com/admin).

Ahora me surge una duda, el web.config para la carpeta admin:
.Es validad para toda la carpeta, incluida las subcarpetas de esa carpeta?
.Este web.config suplanta al web.config "general" o se complementan? es decir, la cadena de conexion a la BD la tendo en el web.config, ¿tengo que volver a ponerla en este web.config?
Saludos, y mil gracias, pondre en practica esta solucion....
__________________
Nadie nacío sabiendo...
  #4 (permalink)  
Antiguo 26/06/2008, 00:53
 
Fecha de Ingreso: enero-2005
Mensajes: 140
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: verificar session

Haber, si, el web.config vale para todo lo que tenga por debajo siempre que no haya otro que lo sobreescriba, por lo que si lo tienes dentro de la carpeta vale para todas las subcarpetas.

Lo que tendriás que hacer en el web.config de la carpeta simplemente es sobreescribir la seccion de configuracion de autenticacion, no hace falta que copies todo el web.config original.
  #5 (permalink)  
Antiguo 26/06/2008, 06:08
 
Fecha de Ingreso: mayo-2004
Mensajes: 189
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: verificar session

Gracias jasp, ya lo solucione y con un solo web.config.
Agregue esto:

Código:
<authorization >
      <allow users="*"/>  
    </authorization>

    <authentication mode="Forms">
      <forms loginUrl="admin/login.aspx"/>
    </authentication>
El tag authorization da acceso al sitio a todos los usuarios, el tag authentication restringe el acceso a la carpeta admin y si se intenta ingresar directamente a cualquier pagina de la carpeta admin, se redirecciona al login de esa carpeta.

Saludos, y gracias por el aporte!!!!
__________________
Nadie nacío sabiendo...
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 14:45.