Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASPX (.net) (http://www.forosdelweb.com/f78/)
-   -   Objeto Session en constructor (http://www.forosdelweb.com/f78/objeto-session-constructor-361617/)

mjuiz10 04/01/2006 15:24

Objeto Session en constructor
 
Que tal gente, alguien sabe como puedo acceder a un objeto session desde un constructor?. Lo intente pero me tira el siguiente error:

Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive

Busqué directivas del webconfig pero con resultados negativos.

Me gustaria saber si existe alguna manera para que pueda usar dicho objeto en un constructor de una clase cualquiera. Muchas Gracias.

RootK 04/01/2006 18:52

Para que quieres usar un objeto session como constructor..??? :pensando: me gustaría saber que es lo que estas haciendo.

Salu2

mjuiz10 05/01/2006 06:05

Metodo Session[""] en constructor
 
En realidad esta mal formulada mi pregunta, lo que intento hacer es acceder al metodo Session["LoginOK"] a los efectos de saber si el usuario esta logueado. Necesitaría hacerlo alli (constructor) para no tener que repetir el codigo siguiente en cada pagina:
if (Session["LoginOK"] != null & !((bool) Session["LoginOK"]))
Response.Redirect("Login.aspx");

Lo que pense es implementar el patron de diseño MVC, heredando cada codebehind aspx.cs de una clase, que se encargue de implementar el codigo precedentemente escrito, en su constructor a los efectos de no escribir codigo repetido ni llamar a ningun metodo desde el page_load de cada pagina; ya que el constructor de la clase padre, se ejecuta primero que el de la clase derivada.

El esquema seria el siguiente:

public class MVC : System.Web.UI.Page
{
public MVC()
{
if (Session["LoginOK"] != null && !((bool)Session["LoginOK"]))
Response.Redirect("Login.aspx");
}
}

y Todas las paginas que hereden de esta, asi por ej:

public class WebForm1 : MVC
{
/*Todo el codigo de la pagina*/
}

No puedo implementar como solucion el evento session_end del global.asax ni un userControl (por questiones q no dependen de mi; mi jefe no quiere estas ultimas opciones)

En fin y para no robarte mas tiempo, la pregunta que trato de responderme es si existe alguna manera de utilizar en un constructor de una clase el Metodo Session[""]?, mas alla de que exista otra solución (seguro mejor) para resolver este tema.

Desde ya, te agradezco por responder. Saludos

RootK 05/01/2006 09:14

Cita:

lo que intento hacer es acceder al metodo Session["LoginOK"] a los efectos de saber si el usuario esta logueado.
Mira.. te recomiendo que mejor leas acerca de los métodos de autenticacion.. el mas común en web es "Forms" y lo que debes hacer es guardar la info del cliente para que en cada peticion o donde la requieras hagas algo como ésto:

Cita:

if (Request.IsAuthenticated) {
...
No debes comparar con la session de si existe o no.. si no a través de la autenticacion de Forms...

Date una vuelta por aqui..
http://www.4guysfromrolla.com/webtech/110701-1.shtml
http://www.15seconds.com/issue/020220.htm

Saludos y cualquier cosa por aqui andamos..


La zona horaria es GMT -6. Ahora son las 02:47.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.