He intentado mucho pero no puedo encontrar una solución sobre cómo establecer el valor de tiempo de espera de sesión para la sesión en proceso para una aplicación web ASP.Net.
Estoy usando VSTS 2008 + .Net 3.5 + C #. Esto es lo que escribí yo mismo para establecer el tiempo de espera en 1 minuto, ¿es correcto?
Escribí en la sección system.web en el web.config
<sessionState timeout="1" mode="InProc" />
Respuestas:
Si desea establecer el tiempo de espera en 20 minutos, use algo como esto:
fuente
El valor que está configurando en el
timeout
atributo es una de las formas correctas de configurar el valor de tiempo de espera de la sesión.El
timeout
atributo especifica la cantidad de minutos que una sesión puede estar inactiva antes de que se abandone. El valor predeterminado para este atributo es 20.Al asignar un valor de 1 a este atributo, ha establecido que la sesión se abandone en 1 minuto después de su inactividad.
Para probar esto, cree una página aspx simple y escriba este código en el evento Page_Load,
Abre un navegador y ve a esta página. Se imprimirá una identificación de sesión. Espere un minuto para pasar, luego presione actualizar. La identificación de la sesión cambiará.
Ahora, si mi suposición es correcta, desea que sus usuarios cierren sesión tan pronto como finalice la sesión. Para hacer esto, puede armar una página de inicio de sesión que verificará las credenciales del usuario y creará una variable de sesión como esta:
Ahora, tendrá que realizar una verificación en cada página para esta variable como esta:
Este es un ejemplo básico de cómo funcionará esto.
Pero, para que sus aplicaciones de calidad de producción sean seguras, use las clases Roles y Membresía proporcionadas por ASP.NET. Proporcionan autenticación basada en formularios que es mucho más confiable que la autenticación basada en sesión normal que está tratando de usar.
fuente
Si está utilizando MVC, lo coloca en el archivo web.config en el directorio raíz de la aplicación web, no en el archivo web.config en el directorio Vistas. También debe estar EN el nodo system.web, no debajo de lo que George2 dijo en su pregunta: "Escribí en la sección system.web en web.config"
El valor del parámetro de tiempo de espera representa minutos.
Hay otros atributos que se pueden establecer en el elemento sessionState. Puede encontrar información aquí: docs.microsoft.com sessionState
Luego puede ver el comienzo de una nueva sesión en el archivo Global.asax agregando el siguiente método:
fuente
Use esto en
web.config
:fuente
timeout
realidad.stateConnectionString
ysqlConnectionString
se ignoran cuandomode="InProc"
, y los valores paramode
ycookieless
se establecen en sus valores predeterminados. Entonces, esto realmente se resume en la respuesta de Wolfwyrd.Si no funciona
web.config
, debe configurarlo desde IIS.fuente