ASP.NET erzeugt permanent eine neue SessionId

Bei der Verwendung von Session bzw. genauer der SessionId als Kennzeichner für z.B. eine eindeutigen Benutzer (Browser) über seinen Lebenszyklus, muss man die Eigenart bzw. die Behandlung von Sessions innerhalb von ASP.NET kennen. Bei der Verwendung von cookie-based session state wird von ASP.NET bei jedem Request eine neue SessionId erzeugt, bis der erste Wert in der Session gespeichert wurde. 

Das ist sehr wichtig zu wissen, denn sonst ist die SessionId nicht als eindeutiger Kennzeichner zu benutzen. (Wie sinnvoll das generell ist, sei jetzt hier mal nicht berücksichtigt).

Es reicht also z.B. in der global.ascx folgenden Code hinzufügen:

void Session_Start(object sender, EventArgs e)
{
    HttpContext.Current.Session.Add("SomeValue", string.Empty);
}

Damit hat die Session immer eine Wert und behält somit die SessionId bis die Session ausläuft.

Weitere Informationen findet man dazu auch hier.

Kommentar schreiben