¿Cuál es la mejor solución para el tiempo de espera de autenticación de formularios ASP.NET cuando se utiliza la asignación de comodines?

StackOverflow https://stackoverflow.com/questions/57739

Pregunta

Mi equipo está trabajando en un sitio web antiguo y de mala calidad y la mayoría de las páginas siguen siendo ASP clásico.Sin embargo, recientemente migramos a la autenticación de formularios usando ASP.NET y mapeo de comodines.Todo funciona sorprendentemente bien excepto por una cosa:los usuarios que han iniciado sesión se están agotando demasiado rápido.Después de mirar los registros, parece que a las personas se les agota el tiempo de espera exactamente después de 20 minutos (que es el tiempo de espera especificado debido a la inactividad).

Entonces, nuestra hipótesis es que las páginas ASP clásicas no activan ningún mecanismo en el marco de autenticación de formularios que restablezca el temporizador de inactividad.Busqué en Google e incluso leí la publicación de mapeo de comodines del Gran Gu, pero todavía no puedo encontrar a nadie más que tenga este problema.Entonces, 1) ¿Alguna vez has visto este problema?y 2) ¿Cuál es la mejor solución?(aparte de colocar manualmente un marco oculto en cada página ASP de mala calidad que carga una página .NET tonta en segundo plano)

Actualizar: deslizanteVencimiento se establece en verdadero

También:No podemos usar sesiones perpetuas porque necesitamos que la aplicación expire después de 20 minutos de inactividad.Además, este terrible sitio fue escrito para que la interfaz generalmente se almacene en la página.No existe un código de interfaz simple en el que pueda insertar JavaScript.Intentamos poner algunos js en un archivo de inclusión al que llamaron aproximadamente el 80% de nuestras páginas, pero causó algunos problemas esotéricos con los buffers de descarga de archivos, por lo que es posible que tengamos que probar una táctica diferente.Gracias.

¿Fue útil?

Solución

Crea una sesión perpetua.

Básicamente, terminas emitiendo algo de JavaScript y una etiqueta de imagen en tu página maestra o en los controles de usuarios de navegación (lo que sea que estés usando para una navegación consistente).Este JavaScript, en algún intervalo, cambia el origen de la etiqueta de la imagen a un punto final del controlador http (algunos .aspx, .ashx) que devuelve un gif transparente de 1x1 píxeles como respuesta para la imagen.La solicitud constante garantiza que las páginas inactivas mantendrán viva la sesión.

Mientras haya una ventana del navegador abierta en su página, su sesión ASP.NET nunca finalizará.

A menudo, JavaScript agregará un número aleatorio a la solicitud para que el navegador no almacene en caché la solicitud.

Un tutorial decente está disponible. aquí.

Otros consejos

Supongo que ha creado manualmente la cookie, en cuyo caso su valor de tiempo de espera en el código probablemente anule su valor de tiempo de espera en la configuración.

En primer lugar, si es posible (que probablemente no lo sea), no cree la cookie manualmente, le evitará no sólo este dolor de cabeza sino también muchos otros.

Si debe crear manualmente la cookie, asegúrese de que el tiempo de espera que está utilizando realmente lea el valor de tiempo de espera que estableció en el archivo de configuración y que la caducidad deslizante esté establecida en verdadero (que usted dijo que era).

Dicho esto, todavía tenemos problemas extraños de tiempo de espera cuando las cookies se crean manualmente.Donde trabajo implementamos una solución que permitía que las cookies se crearan automáticamente y los tiempos de espera ya no eran un problema;sin embargo, creó otros problemas y nos vimos obligados a volver atrás.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top