Creo que por ahora, una solucion rapida seria
public string GetIdEmployee {
get {
String _idEmployee = (String) Session["ID"];
_idEmployee = (_idEmployee == null) ? (String)
ViewState["ID"]: _idEmployee;
Session["ID"] = _idEmployee;
return _idEmployee;
}
set {
Session["ID"] = ViewState["ID"] = value;
}
}
Es casi lo mismo que te habian contestado antes, salvo que en lo personal me
gusta mas trabajar en referencia a la Session, en caso de no existir el Id
que chequee en el viewstate.
Saludos.
2008/1/16 Omar del Valle <[EMAIL PROTECTED]>:
> Igual se me escapa la opción en que estás fuera X tiempo y cuando te
> sientas en la PC vas a una páguina nueva por el menú.. en ese caso ya no
> tendría el ID en la Session y tampoco en el ViewState..
>
> Pero la solución que me das me saca del problema momentaneo.. pues en el
> caso anterior.. no será tanto el problema de volver al login..
>
> mil gracias Pata.. ;)
> Omar
> ----- Mensaje original ----
> De: Pata del Santo <[EMAIL PROTECTED]>
> Para: [email protected]
> Enviado: miércoles, 16 de enero, 2008 10:04:34
> Asunto: [puntonet] Problemas con Session
>
> Tendrías una clase cSesionEmp con un metodo
> *GuardarEmpleadoId*(myID)
> que actualmente, solo hace
> Session("ID")=myID
>
> y otro
> * RecuperarEmpleadoId*
> que actualmente, solo hace
> myID=Session("ID")
> RETURN myID
>
> Allí dentro de esta clase (sin tocar el código de los formularios) irías a
> mejorar la persistencia de este dato.
> Estas son las modificaciones sugeridas:
>
> Para guardar, lo guardas tanto en Session como en ViewState
> *GuardarEmpleadoId*(myID)
> Session("ID")=myID
> ViewState("ID")=myID
>
> Para recuperar, primero preguntas en ViewState (y no importa si el timeout
> de la session está vencido)
> * RecuperarEmpleadoId*
> * *myID=ViewState("ID")
> if myID isnot null
> Session("ID")=myID 'aprovecho a refrescar en Session
> else
> myID=Session("ID")
> endif
> RETURN myID
>
> Esto escrito así, más o menos de memoria, para que entiendas que el
> ViewState lo utilizamos solo para extender ilimitadamente el tiempo de la
> session, sin necesidad de que el IIS guarde durante horas toda la
> información de todos los usuarios. La idea es que cada página guarda lo que
> ella necesita y puedas dejar el timeout de Session según viene por defecto.
>
> Aunque otra cosa que podría hacerse, sin tocar nada de nada, sería
> persistir los datos de Session en BBDD.
>
> Pata.
>
>
> ------------------------------
> *De:* [email protected] [mailto:[EMAIL PROTECTED] *En nombre de *Omar
> del Valle
> *Enviado el:* miércoles, 16 de enero de 2008 9:44
>
> *Para:* [email protected]
> *Asunto:* [puntonet] Problemas con Session
>
> No creo que sería la solución por varias razones:
>
> 1- recuerda que es un proyecto ya terminado.. un cambio que implique
> modificar el lugar donde se almacena el ID puede tomar algún tiempo.
> 2- El ViewState guarda el valor en la página, lo que de hacerlo requerie
> que busque otro mecanismo para pasar el valor entre páginas.. la idea me
> sirve entre postback en una misma página.. pero cuando me voy a otra página
> ya no tendría el id del cliente en el ViewState.
>
> Gracias por la respuesta
> Salu2
> Omar
>
> ----- Mensaje original ----
> De: Pata del Santo <[EMAIL PROTECTED]>
> Para: [email protected]
> Enviado: miércoles, 16 de enero, 2008 9:28:03
> Asunto: [puntonet] Problemas con Session
>
> podrías guardar el id del empleado en el ViewState, es casi lo mismo.
>
>
> ------------------------------
> *De:* [email protected] [mailto:[EMAIL PROTECTED] *En nombre de *Omar
> del Valle
> *Enviado el:* miércoles, 16 de enero de 2008 9:20
> *Para:* [email protected]
> *Asunto:* [puntonet] Problemas con Session
>
> Hola gente,
>
> Estoy teniendo un problema que me tiene algo trastornado el sueño:
>
> Tengo un proyecto que acabo de poner en desarrollo. Este proyecto requiere
> de login y pass para poder acceder a todas sus opciones.. por defecto he
> dejado el timeout de la Session en 20 minutos tal y como viene..
>
> Ahora se encuentran entrando los datos iniciales para poder trabajar con
> el proyecto.. esta tarea va unida al quehacer diario de los trabajadores de
> la compañía por lo que es posible que entrando algún dato tengan parar y
> atender a clientes para luego continuar..
>
> En el momento de continuar.. ya saben.. login de nuevo.. y a empezar todo.
> He intentado subir los tiempos de timeout hasta 500 minutos para evitar este
> problema al menos durante el periodo de entrada de datos.. pero no hay forma
> que me funcione.
>
> En mi PC local puedo demorarme lo que quiera sin tocar el proyecto que a
> mi regreso sigue funcionando el sistema normalmente. Tiene alguna relación
> el IIS con estos tiempos? alguna idea de como lograr que esto funcione?
>
> En el Web.Config tengo en el tag <form un timeout=500 y en el SessionState
> igual un timeout=500.
>
> Todas mis páginas heredan de una página base, donde siempre pregunto si el
> id del empleado (se guarda en session) es nulo, lo envio al login.
>
> Salu2 y gracias
> Omar
>
> ------------------------------
>
> ¡Capacidad ilimitada de almacenamiento en tu correo!
> No te preocupes más por el espacio de tu cuenta con Correo Yahoo!:
> http://correo.yahoo.com.mx/
>
>
> ------------------------------
>
> ¡Capacidad ilimitada de almacenamiento en tu correo!
> No te preocupes más por el espacio de tu cuenta con Correo Yahoo!:
> http://correo.yahoo.com.mx/
>
>
> ------------------------------
>
> ¡Capacidad ilimitada de almacenamiento en tu correo!
> No te preocupes más por el espacio de tu cuenta con Correo Yahoo!:
> http://correo.yahoo.com.mx/
>