Ist die ASP.Net Inproc session-timeout zurückgesetzt, wenn die SessionID wird auf Sie zugegriffen?

StackOverflow https://stackoverflow.com/questions/625782

  •  05-07-2019
  •  | 
  •  

Frage

Ich lese hier dass ein inproc asp.net session-zurücksetzen timeout jedesmal, wenn auf diese zugegriffen wird (Lesen oder schreiben).Meine Frage ist, wenn der timeout auch zurücksetzen, wenn ich lese nur die sessionID?

Beispiel:Session-timeout wird festgelegt, bis zu 20 min.Nach 15 min.Inaktivität lade ich eine Seite auf und Lesen Sie die Sitzung.SessionID.Wird die Sitzung noch vorhanden, nach 10 min.?

Und noch eine Frage:Spielt es eine Rolle, wenn die Seite geladen wird, die direkt oder Zugriffe über AJAX?

War es hilfreich?

Lösung

Es scheint mir, dass Sie mischen zwei verschiedene Dinge:Lesen eines Wertes aus den Session-Zustand (in code) unterscheidet sich von der Befestigung eine Instanz von SessionState, um die aktuelle Anfrage zu verwenden.

Wenn ich mich nicht sehr Irre, wird der timeout-Wert nicht aktualisiert, wenn Sie access ein Session-Objekt (auch im code), sondern es wird aktualisiert, wenn eine neue Anfrage serviert.Dies geschieht, weil das SessionState-Eintrag ist selbst zum Cache Hinzugefügt (und das Ablaufdatum der Richtlinie festgelegt)

Also, um deine Frage zu beantworten:Der timeout wird nicht zurückgesetzt werden.

Nochmal das Beispiel, das Sie gab:Das Zeitlimit zurückgesetzt werden auf die laden von der Seite, sondern wenn Sie Lesen Sie die Sitzungs-id im code.

Andere Tipps

Zugriff auf SessionID nicht Session-Timeout auswirken. Wenn Sie einen Blick mit Reflektor nehmen, die Sitzungs-Eigenschaft (implementiert in HttpSessionStateContainer) sieht wie folgt aus:

public string SessionID
{
    get
    {
        if (this._id == null)
        {
            this._id = this._stateModule.DelayedGetSessionId();
        }
        return this._id;
    }
}

, die nicht die zugrunde liegenden gespeicherten Elemente nicht berührt.

Auch auf dieser Ebene ist es egal, wo die Anfrage kam von (Ajax / normal).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top