none
VARIABLE SESSION SE PIERDE AL PASAR UNOS MINUTOS RRS feed

  • Pregunta

  • Buen Día:

    Estoy realizando una aplicación web con asp y visual.

    Estoy declarando una variable de session cuando hago el login para mostrar el nombre del usuario conectado en diferentes formularios el problema es que al pasar unos minutos estoy perdiendo la variable y deja de mostrar el nombre del usuario conectado.

    Cual seria la mejor opción para solucionar esto? he leído que puedo evitar que esta variable se pierda pero no se como? otra opción seria que cuando se pierda la variable me devuelva al formulario login para obligar al usuario autenticarse otra vez.

    Agradezco su colaboración.

    viernes, 22 de septiembre de 2017 13:57

Respuestas

  • Básicamente, tienes que activar el "authentication mode=forms" en el web.config, arrastrar un control Login al formulario que uses para el Login (o llamar a los métodos equivalentes de la clase FormsAuthentication si no te gusta ese control), y poner en el web.config una o más secciones de <authorization> indicando qué páginas son restringidas y/o abiertas. Con eso es suficiente para un control de accesos básico, pero si lo necesitas admite múltiples refinamientos tales como asignar roles a los distintos usuarios y configurar qué páginas son accesibles a cada rol (por ejemplo, páginas administrativas y páginas de usuarios). Desde luego, todo ello está ampliamente documentado y se encuentran en la red todos los ejemplos y tutoriales que quieras.
    viernes, 22 de septiembre de 2017 21:33

Todas las respuestas

  • Buenos días.

    Podrías fijarte en esta pregunta inicio de sesion por web en donde se plantea la redireccion al login una vez expirado el tiempo de la variable Session.

    Si quieres aumentar el tiempo de las variables de Session puedes realizarlo de la siguiente manera.

    Session.Timeout = 60;//duracion de las variables de session en minutos

    Espero te sirva de ayuda.

    Saludos.

    viernes, 22 de septiembre de 2017 14:39
  • otra opción seria que cuando se pierda la variable me devuelva al formulario login para obligar al usuario autenticarse otra vez

    Esto funcionaría automáticamente si utilizases el mecanismo standard de Login que viene con ASP.NET, en lugar de tratar de "reinventarlo" usando el Session. Si usas login mediante Membership y das los permisos a las páginas mediante el .config, entonces ASP.NET usa de forma interna y automática una cookie separada e independiente de la de sesión, y la controla en todas las páginas y rebota al Login si expira el tiempo de vida o si tratas de entrar en una página en la que ese login no tenga permisos. Todo esto sin programar nada en cada página y sin tenerte que preocupar de la sesión.
    viernes, 22 de septiembre de 2017 16:41
  • Gracias por responder. Cómo utilizo el Login que viene con ASP.NET para que funcione como tú me dices?
    viernes, 22 de septiembre de 2017 20:38
  • Básicamente, tienes que activar el "authentication mode=forms" en el web.config, arrastrar un control Login al formulario que uses para el Login (o llamar a los métodos equivalentes de la clase FormsAuthentication si no te gusta ese control), y poner en el web.config una o más secciones de <authorization> indicando qué páginas son restringidas y/o abiertas. Con eso es suficiente para un control de accesos básico, pero si lo necesitas admite múltiples refinamientos tales como asignar roles a los distintos usuarios y configurar qué páginas son accesibles a cada rol (por ejemplo, páginas administrativas y páginas de usuarios). Desde luego, todo ello está ampliamente documentado y se encuentran en la red todos los ejemplos y tutoriales que quieras.
    viernes, 22 de septiembre de 2017 21:33