Michael Schröpl: Wie kann ich kontrollieren, daß pro Session nur ein Browserfenster geöffnet werden kann ?

Beitrag lesen

Öffnet der Benutzer jedoch mehrere Fenster kann ich nicht kontrollieren von welchem die requests kommen und somit die Statusinformationen nicht zuordnen. -> chaos -> :-(

Das ist eine Frage Deiner Buchführung.

Ich weiß nicht genau, was Du über ASP alles sehen kannst, aber es muß ja ähnlich viel sein wie bei CGI. Dort hätte ich folgende Möglichkeiten:

1. Wenn ich einen Request auslöse, dann sende ich in der URL entsprechende Parameter mit, die mir beschreiben, was der Anwender im Browser alles getan hat (darüber kann ich ggf. mit JavaScript Buch führen).

2. Ich sehe die CGI-Variable HTTP-REFERER, welche den URL der zuvor angezeigten Seite enthält. Beim vorherigen Zugriff kann ich mir den aktuellen URL in der serverseitigen Zustandsvariablen merken, und wenn beide Werte nicht übereinstimmen, dann merke ich das auf dem Server und kann reagieren.

Zu Deinen Duplikatfenstern: Wenn sich der Anwender "einwählt", also Deine Seite erstmals betritt, dann kannst Du im Client eine Identität berechnen (z. B. ein String aus Datum und Uhrzeit und IP-Adresse und Zufallszahl), mitsenden und auf dem Server speichern. Öffnet er ein neues Fenster, dann erzeugt er dafür ggf. eine neue Identität, welche Du von der vorherigen unterscheiden kannst.