Hallo Thomas,
zuerst einmal verstehe ich folgende Aussage von dir nicht:
"Leider haben wir nach wie vor das Problem, dass die Sitzung nach relativ kurzer Zeit beendet wird.
Dies betrifft sowohl Webclients in unserem eigenen LAN als auch extern (im WWW)."
Frage: kann denn jemand aus dem Web auf euerern Intranet rumspielen - oder wie ist das gemeint "...es betrifft ... auch extern"?
Zur Sache:
- warum denn mit Global.asa sich rumplagen? Schmeiß sie raus!
- Der Browser muss Cookies zulassen.
Lösung 1:
- Setze am Anfang nach dem Login bzw. nach Aufruf der ersten Seite der Anwendung folgenden Befehl:
<%
userID = session.sessionID
%>
damit hast du die Session eröffnet. Der Browser muss aber Cookies zulassen.
- Setze im Logout folgenden Befehl:
<%
Session.Abandon
%>
- im IIS setzt du das TimeOut auf die gewünschte Zeit: z.B. 80
Lösung 2:
- Setze am Anfang nach dem Login bzw. nach Aufruf der ersten Seite der Anwendung folgenden Befehl:
<%
userID = session.sessionID
session.timeout = 80
%>
- die Standardeinstellung im IIS mit 20 wird damit ignoriert!
Alle Folgeseiten werden wie folgt begonnen
<%
if not isempty(userID) then
%>
<HTML>
<Head>
</Head>
<Body>
..................................................
</Body>
</HTML>
<%
else
response.redirect "Ziel wohin, wenn nicht eingeloggt bzw. Timeout"
end if
%>
Für den Fall, dass die Clients sich sofort in jede Seite einloggen können, müsste natürlich der Session.SessionID-Befehl auf jeder Seite stehen. Ich frage mich aber, warum dann eine Session überhaupt angewendet wäre? Sinnvoll ist eine Session nur dann, wenn sie mit einem Login/Logout verknüpft ist. Für die Zeit der Sitzung erhält der Client eine eindeutige SessionID, die weiter verarbeitet werden kann.
Ich hoffe, ich habe dein Problem richtig verstanden.
Gruß
Wolfgang