Session Timeout detektieren und Redirect ausführen in Masterpage

23/06/2008 - 11:46 von Henry Habermacher | Report spam
Hallo zusammen

ASP.NET 2.0, VS2005, Visual Basic

Meine Web Anwendung basiert auf Masterpages. Nun möchte ich allgemein in
allen Seiten auf den Session Timeout so reagieren, dass ich auf die
Default.aspx Seite wechsle und in der MasterPage in einer Textbox
"txtMessage" eine Meldung ausgeben und die Session neu starten. Gleichzeitig
soll verhindert werden, dass mit Back Navigation wieder auf die alte
(getimeoutete) Seite zurückgesprungen wird.

Ist es überhaupt möglich und wie würde der Code dafür etwa aussehen?
Kann ich das in der Masterpage einzubauen, oder muss ich das in allen Client
Content Pages einbauen? In welchem Event?

Wie kann ich verhindern das zurückgesprungen wird?

TIA

Henry
 

Lesen sie die antworten

#1 Thomas Bandt
23/06/2008 - 12:00 | Warnen spam
Henry Habermacher schrieb:
Ist es überhaupt möglich und wie würde der Code dafür etwa aussehen?



Die Session in Session_Start() in der Global.asax
setzen, so dass sie auch wirklich zu Beginn jeder
Sitzung vorhanden ist.

Dann bei jedem Request prüfen, ob sie noch da ist:

if(Session["XYZ"] == null)
{
// abgelaufen
}

Kann ich das in der Masterpage einzubauen, oder muss ich das in allen
Client Content Pages einbauen? In welchem Event?



So früh wie möglich, OnInit bietet sich an. In der
MasterPage würde ich es nicht machen, sondern eher
für alle WebForms eine gemeinsame Basisklasse verwenden.

public class BasePage: Page
{
protected override OnInit(...)
{
if(Session ...
}
}

Wie kann ich verhindern das zurückgesprungen wird?



Gar nicht, zumindest nicht mit Sicherheit. Grund ist
einfach, dass die Seite dann oft nicht beim Server neu
angefordert sondern aus dem Browsercache geladen wird.

Eine Möglichkeit wàre via JavaScript bei jedem Aufruf
in der Browser-History eins vorzuspringen.

history.go(1);

Ob das aber in jedem Fall auch im Hinblick auf Caching
in den aktuellen Browsern funktioniert, weiß ich nicht.

Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de - Beratung, Entwicklung
http://www.dotnetjob.de - .NET-Stellenmarkt
http://blog.thomasbandt.de - Thomas goes .NET

Ähnliche fragen