Passando ai commenti tanto quanto la domanda, non sono sicuro che tu stia cercando qualcosa che effettui il logout dell'utente dopo un certo periodo di tempo indipendentemente dall'attività o solo dopo un periodo di inattività.
Se sei felice di utilizzare lo standard ASP.NET mechanisms, questo può essere fatto per voi, senza lavori importanti:
Impostare il tuo membership provider.
Assicurarsi che il vostro authentication section definisce una loginUrl:
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>
È possibile impostare un timeout diverso da quello predefinito di 30 minuti con l'attributo "timeout" sulla forms element:
<authentication mode="Forms">
<forms loginUrl="login.aspx" timeout="15"/>
</authentication>
Questo sarà il login l'utente dopo 15 minuti di inattività sul tuo sito (con il browser aperto senza "heartbeat" di javascript o se trascorrono 15 minuti su un altro sito).
Negare l'accesso agli utenti anonimi
<authorization>
<deny users="?" />
</authorization>
Allora sì che i dati di accesso, la registrazione e le pagine di password eventualmente dimenticati sono accessibili a tutti gli utenti utilizzando il 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 -->
In questo modo, quando l'autenticazione di un utente il cookie scade e verrà reindirizzato all'URL specificato nell'elemento loginUrl della pagina dei moduli.
Se non stai utilizzando i meccanismi di ASP.NET standard, allora si sarebbe probabilmente meglio l'attuazione di una "pagina di base" tipo di modello.
Creare una nuova classe che eredita da System.Web.UI.Page che verificherà lo stato di accesso dell'utente e, se non sono registrati/scaduti, li reindirizzerà alla pagina di accesso.
Nelle pagine che devono essere bloccate, invece di ereditare da System.Web.UI.Page, si eredita dalla classe della pagina di base (un esempio di questo tipo di installazione per fare qualcosa di simile - controllare l'impostazione su ogni pagina) può essere visto in my answer here
la pagina di accesso avrà probabilmente bisogno di avere qualche fotogramma busting JS in esso per saltare di nuovo fuori dalla iFrame:
if (top!=self.parent){
top.location=self.parent.location;
}
Oppure stai dicendo che premendo "indietro" possono ancora vedere le tue pagine attraverso la cache del browser? In questo caso avrete bisogno di giocare in giro con le intestazioni Cache su ogni pagina:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Ok, bene, in questo caso avrete anche bisogno di un oggetto Timer JS per eseguire una Posizione. Sostituisci per la vostra pagina di login - hanno questo in un controllo utente in ogni pagina (o, meglio ancora, nella tua pagina master) per reindirizzare automaticamente l'utente dopo n minuti:
<script type="text/javascript">
setTimeout('location.Replace("/login.aspx")', 900000);
</script>
il tempo è espresso in millisecondi, quindi questa volontà spostali in 15 minuti, e non c'è bisogno di ottenere l'intero framework jQuery per questo.
Si potrebbe anche voler guardare nel tag meta refresh:
<meta http-equiv="refresh" content="900;url=http://example.com/login.aspx" />
che costringerà il browser per aggiornare la pagina di accesso dopo 15 minuti (di questo uno in secondi).
Dovresti contrassegnarlo come la risposta per salvare le persone che ci passano il tempo –