Continuando con los comentarios tanto como la pregunta, no estoy seguro de si está buscando algo que desconecte al usuario después de un cierto tiempo, independientemente de la actividad, o simplemente después de un período de inactividad.
Si estás dispuesto a utilizar el estándar ASP.NET mechanisms, esto se puede hacer por usted sin ningún trabajo importante:
Configurar el membership provider.
asegurarse de que su authentication section define un loginUrl:
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>
Se puede establecer un tiempo de espera que no sea el valor por defecto de 30 minutos usando el atributo "tiempo de espera" en la forms element:
<authentication mode="Forms">
<forms loginUrl="login.aspx" timeout="15"/>
</authentication>
Esto registrará el usuario sale después de 15 minutos de inactividad en su sitio (ya sea con el navegador abierto sin javascript "latido" o si pasan 15 minutos en otro sitio).
Denegar el acceso a usuarios anónimos
<authorization>
<deny users="?" />
</authorization>
A continuación, asegúrese de que su nombre de usuario, registro y páginas de contraseñas posiblemente olvidados son accesibles a todos los usuarios utilizando el location Element:
<location path="Logon.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="Register.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<!-- etc -->
De esta manera, cuando la autenticación de un usuario cookie expira serán redirigidos a la URL especificada en el elemento loginUrl de su página de formularios.
Si usted no está utilizando los mecanismos estándar de ASP.NET, entonces probablemente sería mejor implementar una "página base" modelo tipo.
Cree una nueva clase que herede de System.Web.UI.Page que verificará el estado de inicio de sesión del usuario, y si no está conectado/sin tiempo, redirigirlos a su página de inicio de sesión.
En sus páginas que se van a bloquear, en lugar de heredar de System.Web.UI.Page, hereda de su clase de página base (un ejemplo de este tipo de configuración para hacer algo similar; verifique la configuración de cada página) se puede ver en my answer here
Su página de inicio de sesión, probablemente tendrá que tener algún marco que revienta JS en ella para saltar de nuevo fuera del marco flotante:
if (top!=self.parent){
top.location=self.parent.location;
}
¿O está diciendo que al presionar "volver" todavía pueden ver sus páginas a través del caché de los navegadores? En cuyo caso tendrá que estar jugando un poco con las cabeceras de caché en cada página:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Ok, bueno, en ese caso usted también necesitará un objeto de temporizador JS para realizar una ubicación. sustituir a la página de inicio de sesión - tener esto en un control de usuario en cada página (o mejor aún, en su página maestra) para redirigir automáticamente al usuario después de n minutos:
<script type="text/javascript">
setTimeout('location.Replace("/login.aspx")', 900000);
</script>
el está en milisegundos de tiempo, por lo que esta voluntad muévelos en 15 minutos y no es necesario que todo el framework jQuery esté en su lugar solo para eso.
También puede que desee ver en la etiqueta meta de actualización:
<meta http-equiv="refresh" content="900;url=http://example.com/login.aspx" />
lo que obligará al navegador para actualizar a la página de inicio de sesión después de 15 minutos (de éste en segundos).
Debe marcar esto como la respuesta para ahorrarle tiempo a la gente que lo usa –