2010-10-22 16 views
23

Tengo una aplicación MVC 2, donde el tiempo de espera se establece en 2880 (minutos como yo lo entiendo, pero incluso si se trata de segundos que hay un problema):¿Por qué realmente corto tiempo de espera en ASP.NET MVC?

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
</authentication> 

Ahora esto, entonces debe significar 48 horas, o por lo por lo menos 48 minutos (si el valor es segundos). Pero el usuario está desconectado después de tan solo un par de minutos de inactividad ...

¿Por qué es eso? Cualquier ayuda apreciada!

+0

¿Has probado esto con diferentes navegadores? He visto este problema con un usuario aislado que navega con Firefox una vez. –

+0

Sí, el problema ha ocurrido con Firefox, Chrome, IE y Safari ... – Anders

+0

Esta [publicación de blog] (http://weblogs.asp.net/owscott/archive/2006/07/15/Forms-Authentication-Timeout .aspx) habla sobre una situación similar; tal vez la configuración está siendo anulada en algún lugar del código. –

Respuesta

32

encontrado la respuesta, finalmente, después de mucho buscar en Google ...

usted tiene que fijar un machinekey personalizada en el archivo web.config. He utilizado este generador:

http://aspnetresources.com/tools/machineKey

Esto parece que tiene que hacer algo con el "reciclaje" en la red de acogida, lo que hace que el usuario se cierra la sesión, si he entendido correctamente.

De todos modos, funciona bien ahora!

+0

Guau, esta información es realmente útil. ¡Muchas gracias! Tuve el mismo problema, y ​​lo resolvió. –

+0

¿por qué está sucediendo? – Duk

+4

el enlace no está más activo, ¿puedes explicarlo aquí más? En realidad, estoy enfrentando el mismo problema. He proporcionado tiempo de espera para la autenticación de formularios como timeout = "2880" slidingExpiration = "true" y sessionState timeout a 1440. Pero aún la sesión caduca después de 10-15 minutos. Cuál puede ser el problema. – gokul

-3

2880 está en cuestión de minutos. Cerrará sesión automáticamente si agrega slidingExpiration="true". Vea el ejemplo a continuación.

<forms loginUrl="~/Account/LogOn" timeout="2880" slidingExpiration="true"/> 
+1

Esto no es correcto. No se cerrará automáticamente. Cuando SlidingExpiration se establece en true, el intervalo de tiempo durante el cual la cookie de autenticación es válida se restablece al valor de propiedad de tiempo de espera de caducidad. – Paul

Cuestiones relacionadas