Fragensteller
MVC 4 Login und Session variabeln

Allgemeine Diskussion
-
Hallo,
ich bin neu in MVC und habe darum eine vermutlich einfach Frage.
Ich habe eine Login Maske gebaut und will mir nach dem Login auf dem Server verschiedene Dinge je Benutzer merken.
Ich merke mir das Login momentan mit
FormsAuthentication.SetAuthCookie(Benutzername, false);
Nach der Authentifizierung merke ich mir momentan z.B. verschieden Rechte in einer Session verschiedene VariablenHttpContext.Current.Session["Benutzer_ID"] = value;
Mein Controller hat folgende Überschrift
[Authorize] public ActionResult WeitereMaske(int id)
Wenn ich eine Seite aufrufe, obwohl ich nicht authentifiert bin, kommt automatisch die Login Maske. Das funktioniert jetzt schon gut.
Nun habe ich jedoch folgendes Problem. Wenn ich z.B. 30 Minuten (oder länger) nichts an meiner Web Seite aufrufe, sind meine Session Variabeln weg, jedoch bin ich immer noch authentifiziert
HttpContext.User.Identity.IsAuthenticated
Eigentlich hatte ich gedacht, dass dann automatisch wieder die Login Maske erscheinen soll, so dass man sich neu anmelden muss.
Also nochmal meine Frage: Wie bekomme ich das MVC Programm dazu, dass sobald die Session Variabeln nicht mehr vorhanden sind, ich automatisch das Login Window angezeigt bekomme?
Eine Möglichkeit wäre natürlich die Session Variabeln abzufragen und zu prüfen ob diese vorhanden ist. Wenn nicht vorhanden, dann auf LoginMaske verweisen. Das will ich aber nicht für jede Session Variable machen.
Mache ich etwas falsch, oder habe ich einfach etwas vergessen?
Danke für eure Infos.
Thomas
- Typ geändert Robert BreitenhoferModerator Freitag, 21. Dezember 2012 12:34 Keine Rückmeldung des Fragenstellender
- Typ geändert Robert BreitenhoferModerator Freitag, 21. Dezember 2012 12:35 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
Hallo,
möglicherweise ist dein Authentifizierungscookie länger gültig als deine Session.
<authentication mode="Forms"> <forms loginUrl="~/Authentication/LogOn" timeout="2880" /> </authentication>
Wenn du Formsauthentication nutzt, schau mal nach dem Timeoutwert. Der Wert ist standardmäßig auf 30 Minuten, in dem oberen Beispiel sinds 2880 Minuten.
Den Sessiontimeoutwert setzt du so:
<system.web> <sessionState timeout="540"/> </system.web>
Gruß
asymetrixs
-
****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.