Ich habe folgenden JavaScript-Code in der Layout-Seite meiner ASP.NET MVC-Anwendung, um eine browserweite ID für einen Benutzer als Cookie zu speichern, so dass ich auf Informationen in der Sitzung auf der Serverseite zugreifen kann der jeweilige Benutzer.JavaScript: sessionStorage verliert Artikel
In den meisten Fällen funktioniert das.
Aber in einigen zufälligen Fällen für einige Benutzer die sessionStorage.getItem("TestWindowId")
gibt null auf der gleichen Browser-Registerkarte wurde es definitiv zuvor festgelegt. In diesen Fällen verliere ich die Id und obwohl die Verbindung zu den Benutzerinformationen auf der Serverseite. Laut meinen Protokollen wurde der sessionStorage-Eintrag festgelegt und in einem Callback-Anruf innerhalb derselben Sekunde war der sessionStorage des gleichen Browser-Tabs wieder null.
Was kann dazu führen, dass sessionStorage auf der Clientseite Elemente verliert?
Oder gibt es einen Fehler in meiner Logik?
UPDATE:
Es gab ein Problem in meinem Denken Muster. Das Problem besteht nicht darin, dass das sessionStorage-Element gelöscht wurde, sondern dass der falsche Cookie-Wert mit der Anforderung an den Server gesendet wurde. Ich habe ein anderes Ticket geöffnet, da sich die Frage unterscheidet: Store browser window specific id in cookie
Mai ist es auf der Serverseite verloren. Wo speichern Sie die Sitzung auf der Serverseite? –
Sie verwenden 'sessionStorage', dh sobald der Browser geschlossen ist, werden die Daten gelöscht. Sie sollten 'localStorage' verwenden, damit es bestehen bleibt. –
Nur zur Klarstellung, meinst du, es gibt null auf der gleichen Instanz der Seite, die es gesetzt wurde, oder nach einiger Zeit? sessionStorage soll flüchtig sein und regelmäßig gelöscht werden. –