No more Cookies Druckversion
ASP Sessions
ohne Sitzungscookies
Seite
[<] [1] [2] (3) [4] [>
Mo, 18.03.2002
Autor: Olaf Lüder

Installation

Wir haben die gesamte Funktionalität in einem ISAPI-Filter realisiert. Dieser wurde in Delphi programmiert und steht Ihnen im Quelltext sowie als kompilierte DLL zur Verfügung.
Kopieren Sie die Datei SessionID.dll in ein beliebiges Verzeichnis, wählen Sie in der IIS-MMC den gewünschten Host aus, gehen Sie unter Eigenschaften | ISAPI-Filter auf hinzufügen und tragen Sie unter Filtername 'SessionID' sowie unter 'Ausführbare Datei' den vollständigen Pfad zur DLL ein.

Konfiguration

Zur Konfiguration dient die Datei SessionID.ini, die sich im gleichen Verzeichnis wie die DLL befinden muss. Standardmäßig sind folgende Werte eingestellt, die auch benutzt werden, falls die Datei oder einzelne Einträge in dieser fehlen:

[Config]
EnableBrowserCheck=1
EnableRedirectOnly=0
EnableURLSession=1

Da die hier eingestellten Werte nur in Ausnahmefällen angepasst werden müssen, wird die Datei nur beim erstmaligen Laden des Filters ausgewertet; wenn sie Änderungen vornehmen, sollten Sie daher den IIS neu starten:

net stop iisadmin /y
net start w3svc [ggfs. noch ftpsvc, smtpsvc]

Im Abschnitt 'Config' können Sie folgende Einträge vornehmen:

EnableBrowserCheck (1=aktiviert, 0 =deaktiviert)
Ist diese Option aktiviert, schickt der Filter das Session-Cookie mit zum Browser; kommt dieses bei dem direkt danach ausgeführten Redirect zurück, akzeptiert der Browser Cookies, so dass eine Abbildung im URL nicht notwendig ist. Bei deaktivierter Einstellung wird die SessionID immer im URL abgebildet, unabhägig davon, ob der Client Cookies akzeptiert.
Sie können diese Option fallweise ein- und ausschalten, dies geschieht durch Setzen eines Headers beim Start der Sitzung:

function Session_OnStart(){
  Response.AddHeader('BrowserCheck', 'false');
  Response.Redirect('/sessionid/Seite1.asp');
}

EnableRedirectOnly (1=aktiviert, 0 =deaktiviert)
Wenn Sie diese Option aktivieren, inspiziert der Filter nur Serverantworten mit dem Status-Code 302 (Redirect); Sie sollten diese Einstellung nur verwenden, falls Sie jede Sitzung - wie oben beschrieben - mit einem Redirect beginnen. Diese Option verbessert die Performance, funktioniert aber nicht, falls das Sitzungscookie im Rahmen einer ’normalen’ Serverantwort (Status-Code 200) gesetzt wird.

EnableURLSession (1=aktiviert, 0 =deaktiviert)
Dieser Wert bestimmt, ob ein vom Server gesetztes Sitzungscookie überhaupt auf einen virtuellen URL-Pfad abgebildet werden soll. Sie können damit die Konvertierung global ein- bzw. ausschalten. Beachten Sie, dass eine vom Browser im URL gesendete SessionID in jedem Fall korrekt in das vom Server benötigte Cookie transformiert wird, diese Option wirkt sich nur auf die Umwandlung von Sitzungscookies in URL-Pfade aus, die umgekehrte Richtung funktioniert immer.
Sie können diese Option fallweise ein- und ausschalten, dies geschieht durch Setzen eines Headers beim Start der Sitzung:

function Session_OnStart(){
  Response.AddHeader('URLSession', 'true');
  Response.Redirect('/sessionid/Seite1.asp');
}

Die oben beschriebene standardmäßig vorhandene Konfiguration stellt die flexibelste Lösung dar und sollte mit dem meisten bereits vorhandenen Anwendungen problemlos zusammenarbeiten.
Wir empfehlen Ihnen aber‚ die Option ’EnableRedirectOnly’ zu aktivieren und die Sitzungen wie beschrieben mit einem Redirect zu beginnen.

Eine detaillierte Beschreibung der Auswirkungen der einzelnen Optionen auf die interne Arbeitsweise des Filters haben wir für Sie im letzten Teil unseres Beitrages zusammengestellt.

© 2001, 2002 NOGETEC GmbH - Alle Rechte vorbehalten. - Impressum
Der Inhalt dieser Seiten ist urheberrechtlich geschützt. Texte, Grafiken und Dateien dürfen ohne unsere schriftliche Genehmigung - auch auszugsweise - nicht kopiert, vervielfätigt oder vertrieben werden.
Übersicht
13 Beiträge
in 11 Kategorien

ASP classic (7)
ASP.NET (0)
Komponenten (2)
ISAPI-Filter (4)
Konfiguration (0)
No more Cookies
ASP Sessions
ohne Sitzungscookies

Sie nutzen das integrierte Session-Objekt?
Ihre Kunden akzeptieren aber keine Cookies?

Wir haben die Lösung...
Load me up
ASP Fileupload
ohne Komponenten

Sie möchten Dateien auf den Server heraufladen,
ohne Komponenten zu installieren?

Gar kein Problem...
Little Secrets
Dateinamen & Parameter
im URL verbergen

Verschiedene Pfade auf eine Datei abbilden...?
Skriptnamen weglassen, Parameter verstecken...?

So funktioniert's ...
Lost in Space
Recordsets
auf Abwegen

Sie nutzen Datenbanken & ADO-Recordsets...?
Die Performance ist aber nicht befriedigend...?

Dann lesen Sie weiter...
Subdomains
Subdomains einrichten
ohne viel Aufwand

Sie möchten Subdomains verwenden, mit eigenen Verzeichnissen aber ohne extra Host-Header oder Web-Sites einzurichten?

Wir zeigen Ihnen wie...