Retroceder   Foros del Web > Programación para sitios web > .NET > web forms

Respuesta
 
Herramientas Desplegado
Antiguo 04-ene-2006, 14:24   #1 (permalink)
mjuiz10 ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2005
Mensajes: 26
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.
mjuiz10 está desconectado   Responder Citando
Antiguo 04-ene-2006, 17:52   #2 (permalink)
Moderador
RootK llegará a ser famoso muy prontoRootK llegará a ser famoso muy pronto
 
Avatar de RootK
 
Fecha de Ingreso: noviembre-2002
Ubicación: México D.F
Mensajes: 7.552
Enviar un mensaje por MSN a RootK
Para que quieres usar un objeto session como constructor..??? me gustaría saber que es lo que estas haciendo.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .
RootK está desconectado   Responder Citando
Antiguo 05-ene-2006, 05:05   #3 (permalink)
mjuiz10 ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2005
Mensajes: 26
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
mjuiz10 está desconectado   Responder Citando
Antiguo 05-ene-2006, 08:14   #4 (permalink)
Moderador
RootK llegará a ser famoso muy prontoRootK llegará a ser famoso muy pronto
 
Avatar de RootK
 
Fecha de Ingreso: noviembre-2002
Ubicación: México D.F
Mensajes: 7.552
Enviar un mensaje por MSN a RootK
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..
RootK está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 08:26.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93