2009-08-17 6 views
1

Eine klassische Seite besteht aus 4 Framesets. Wenn alle 4 Framesets inaktiv sind, dann Timeout für die Anmeldeseite. So legen Sie das Timeout für die klassische ASP-Seite mit Frameset fest.Settimeout - Frameset in Asp Seite

Antwort

1

Nach Deafult-Sitzung ist die Zeitüberschreitung 20 Minuten. Sie können es ändern, indem Sie den folgenden Code

Session.Timeout (= intMinutes) 
ex: Session.Timeout= 10 

in Ihrer ASP-Seite hinzufügen.

+0

Ich denke, Session.TimeOut ist eine Eigenschaft. Es sollte Session.TimeOut = 10 sein. – adatapost

+0

oops sorry! geändert. – Shoban

0

Sie könnten einige JS auf Ihrer Seite haben, die bis zu Ihrem Sitzungszeitlimit zählt (siehe Shobans-Antwort, wie Sie das einstellen). Dann, wenn der JS-Timeout (dh erreicht seine Session-Timeout), dann könnten Sie sie (Client-Seite) auf Ihre Anmeldeseite umleiten, wie Sie dies tun. So etwas sollte es tun:

<script type="text/javascript"> 

// Get the current server side timeout (times 1000 to convert it into JS milliseconds 
var timeout = <%= Session.TimeOut * 1000 %>; 

// This is the function that does the framebusting and redirecting to your login page 
function GoToLogin() { 
    top.location.replace("yourloginpage.asp"); 
} 

// Set it up to run when the timeout expires 
setTimeout(GoToLogin, timeout); 

</script> 

Sollte der Benutzer alles tun, um die Seite dann Timer wird zurückgesetzt, schön neu zu laden. Ziehe das nicht in alle deine Frames, du brauchst es nur wirklich in deinem Hauptframe, du willst es nicht in einem Navigationsframe, der keine Action bekommt, du wirst immer Timeout!

Ein Zusatz könnte sein, dass die Seite nur aktualisiert wird. Wenn die Zeit abgelaufen ist, kann der serverseitige Code den Benutzer auf die Anmeldeseite umleiten (dies würde jedoch im Rahmen erscheinen, also würde Ihre Anmeldeseite benötigt) ein Frame-Buster, der den top.location-Trick oben verwenden würde).