Ich benutze ASP.NET MVC und möchte in der Lage sein, automatisch jemanden einzuloggen, wenn sie auf die Seite zurückkehren (genau wie diese Seite).Persistent Cookie-Ablauf auf Sitzung in asp.net mvc festgelegt?
Wenn ein Benutzer zum ersten Mal registriert oder einloggt mir das Cookie wie folgt festgelegt:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
"playerid",
DateTime.Now,
DateTime.Now.AddMinutes(1), //This will be set to a longer period in live...
true,
Username + "|" + item.PlayerID.ToString(),
FormsAuthentication.FormsCookiePath);
string encTicket = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
Wenn ich das testen, indem Sie sich als Benutzer anmelden und dann Blick auf den Cookies
Registerkarte in Firebug
dann dem Ablauf gesetzt zu Session
. Wenn ich den Browser schließe und dann zu meiner Site zurückkehre, bin ich nicht mehr eingeloggt. Das würde ich erwarten, da die Sitzung endet, wenn der Browser geschlossen ist (aber das ist nicht das, was ich möchte!).
Allerdings, wenn ich mich einloggen und navigieren über die Website, dann nach Ablauf einer Minute verfällt der Ablauf nicht mehr als Session
sondern erscheint als ein tatsächlicher Datumsstempel. Wenn ich dann den Browser schließen und auf meiner Seite zurück I Auto bin angemeldet.
Zusammenfassend scheint es, als ob mein Ablauf zu Session
bis zum tatsächlichen Ablaufdatum gesetzt Ich habe Pässe festgelegt (t + 1 min in In diesem Fall) und ich war aktiv auf der Website (Ich verwende gleitende Ablaufzeit).
Irgendwelche Ideen, wie ich mein Ablaufdatum auf das festlegen kann, was ich im FormsAuthentication-Ticket angegeben habe (und nicht als Session
angezeigt wird)?
Wow! Das funktioniert perfekt. Ich liebe diese Seite! Danke Darin –
Um den Unterschied zwischen Cookie und Ticket zu verstehen, lohnt sich ein kurzer Blick http://support.microsoft.com/kb/910443?wa=wsignin1.0 –
Danke für den Link. Das hilft mir, es besser zu verstehen. –