Sto usando ASP.NET MVC e voglio essere in grado di loggare automaticamente qualcuno quando ritornano al sito (esattamente come fa questo sito).Scadenza persistente del cookie impostata su Session in asp.net mvc?
Quando un utente primi registri o accede ho impostato il cookie come segue:
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));
Se risulto questo accedendo come utente e poi guardare la scheda Cookies
nel Firebug
poi la scadenza è impostata a Session
. Se chiudo il browser e torno al mio sito non sono più loggato. Questo è quello che mi aspetterei quando la sessione termina quando il browser è chiuso (ma non è quello che voglio che succeda!).
Tuttavia, se accedo e navigo sul sito, dopo un minuto la scadenza non viene più visualizzata come Session
ma appare come un timbro data effettivo. Se poi chiudo il browser e torno al mio sito, ho effettuato l'accesso automatico.
In sintesi, sembra che la mia scadenza sia impostata su Session
fino alla data di scadenza effettiva che ho stabilito i passaggi (t + 1 min in questo caso) e sono stato attivo sul sito (sto usando la scadenza scorrevole).
Qualche idea su come posso impostare la scadenza su cosa sto affermando nel ticket FormsAuthentication (e non mostrare come Session
)?
Wow! Funziona perfettamente. Adoro questo sito! Grazie Darin –
Per aiutare a capire la differenza tra cookie e ticket, questo vale una rapida occhiata http://support.microsoft.com/kb/910443?wa=wsignin1.0 –
Grazie per il collegamento. Questo mi aiuta a capirlo meglio –