Firefox (3.6.18) teilt die Sitzung, wenn die Anwendung in mehreren Tabs geöffnet ist. Ich möchte dies verhindern. In jedem geöffneten Tab sollte eine neue Sitzung stattfinden, damit der Datenstatus in der Sitzung nicht beschädigt wird.
Wir sind für jede Hilfe in dieser Hinsicht sehr dankbar.
Antwort1
Es gibt kein Problem mit Firefox oder sogar mit der von Ihnen genannten Version. Ich würde sagen, Ihr Verständnis davon, wie Browser Sitzungscookies verfolgen, ist etwas unvollständig. Browser senden immer eine Anfrage an einen Server mit den Cookies für die Serverdomäne, die sie ausgegeben hat. Dies gilt unabhängig von der Browserregisterkarte, die das Cookie ausgegeben hat.
Wenn Sie nicht möchten, dass Sitzungscookies tabübergreifend verwendet werden, können Sie seitenspezifische Kennungen verwenden, um jede vom Server an einen Client gerenderte Seite zu unterscheiden. Wenn die entsprechende Registerkarte eine Anfrage zurücksendet, muss sie auch die seitenspezifische Kennung senden, damit der Server tabübergreifende Anfragen unterscheiden kann. Dies würde Ihnen nicht helfen, wenn ein Benutzer einen Link mit dieser seitenspezifischen Kennung von einer Registerkarte auf eine andere kopiert.
Wenn Sie mit der Verwendung seitenspezifischer Kennungen fortfahren möchten, müssen Sie lediglich die eingehenden Anforderungsparameter nach der Seitenkennung durchsuchen. Wenn keine vorhanden ist, können Sie mithilfe eines PRNG eine generieren und eine Antwort senden, die diese Seitenkennung auf der Seite enthält (z. B. als verstecktes Feld in einem Formular oder in der URL, aber niemals als Cookie).
Hinweis: Wenn Sie nach browserspezifischen Funktionen suchen, verfügen Firefox 3 und 4 nicht über die in IE9 vorhandene Funktion „Neue Sitzung“, mit der Benutzer neue Sitzungen über mehrere Browserfenster hinweg erstellen können. Außerdem scheint die Funktion „Neue Sitzung“ von IE9 nicht zu funktionieren, wenn der Server dauerhafte Cookies verwendet, um den Benutzer zu verfolgen.
Antwort2
Das geht nicht,
Sie können die URL neu schreiben, an jede URL eine jSessionId anhängen und sie manuell verfolgen. Das ist jedoch nicht die richtige Vorgehensweise.