ASP.NET MVC 3 - Umgang mit Session-Variablen

Habe ich eine app, die verwendet Form ist die Authentifizierung und das Benutzer-log-in, das ich des Benutzers abrufen tatsächlichen Namen und weisen, dass eine session-variable, in etwa so:

[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(model.UserName, model.Password))
        {
            Session["Name"] = client.GetName(model.UserName);
            FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
            return RedirectToAction("Index", "Home"); 
        }
    }
}

Dieser wird dann auf meine Index-Ansicht, etwa so:

<h3>Welcome, @Session["Name"]</h3>

Also, wenn mein name war Bob, er würde die Ausgabe "Willkommen, Bob" auf meine Ansicht und dies funktioniert gut. Aber sobald ich navigieren Weg von der Seite oder schließen des Browsers und kehren ein paar Minuten später, es scheint, als ob die Session-Variablen wurden zerstört, wie es nur Ausgänge "Willkommen", aber ich bin immer noch angemeldet, damit meine session nicht zerstört? Ich habe eingestellt, dass die session zerstört, nachdem 60 Minuten in meiner web.config:

<sessionState regenerateExpiredSessionId="true" timeout="60" />

Bearbeiten

Passiert das nur, wenn ich meine "an Mich Erinnern" box bei der Anmeldung, wie ich denke, das hält ein cookie client-Seite, also wenn ich Sie wieder öffne mein browser Im noch angemeldet, aber eine neue session-ID angelegt, ich habe eine Response.Write(Session.SessionID) auf meiner Index-Seite und die ID bevor ich geschlossen, mein browser war anders als die, wenn ich Sie wieder öffnete. Wenn ich nicht prüfen, mein "an Mich Erinnern" box bin ich dann gezwungen, sich wieder auf re-opening meinem browser

  • Ist die Website läuft auf shared host?
  • Nop, seine auf meinem IIS-interne
InformationsquelleAutor CallumVass | 2012-04-12
Schreibe einen Kommentar