c# - mvc - session timeout asp net
Cómo establecer el tiempo de espera de la sesión en web.config (3)
El valor que está configurando en el atributo de timeout
es una de las formas correctas de establecer el valor de tiempo de espera de la sesión.
El atributo de timeout
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, crea una página aspx simple y escribe este código en el evento Page_Load,
Response.Write(Session.SessionID);
Abra un navegador y vaya a esta página. Se imprimirá una identificación de sesión. Espere un minuto para pasar, luego pulse actualizar. La identificación de sesión cambiará.
Ahora, si mi conjetura es correcta, quiere hacer que sus usuarios cierren sesión tan pronto como la sesión expire. 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 -
Session["UserId"] = 1;
Ahora, tendrá que realizar un control en cada página para esta variable como esta -
if(Session["UserId"] == null)
Response.Redirect("login.aspx");
Este es un ejemplo escueto de cómo funcionará esto.
Sin embargo, para crear aplicaciones seguras de calidad de producción, utilice Roles y clases de membresía proporcionadas por ASP.NET. Proporcionan autenticación basada en formularios que es mucho más confiable que la autenticación basada en sesiones normal que está tratando de usar.
He intentado con todas mis fuerzas, pero no encuentro una solución sobre cómo configurar el valor de tiempo de espera de 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 la web.config
<sessionState timeout="1" mode="InProc" />
Si desea establecer el tiempo de espera en 20 minutos, use algo como esto:
<configuration>
<system.web>
<sessionState timeout="20"></sessionState>
</system.web>
</configuration>
debería verte bien
Use esto en web.config
:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>