sto usando ASP.NET forma di autenticazione per l'accesso degli utenti in un sito web che stiamo sviluppando.Ricordami funzionalità in ASP.NET Autenticazione modulo non funziona
parte delle funzionalità è una casella di controllo "Ricordati di me", che ricorda l'utente per un mese se lo controllano.
Il codice per l'accesso l'utente è la seguente:
public static void Login(HttpResponse response, string username,
bool rememberMeChecked)
{
FormsAuthentication.Initialize();
FormsAuthenticationTicket tkt = new FormsAuthenticationTicket(1, username, DateTime.Now,
DateTime.Now.AddMinutes(30), rememberMeChecked,
FormsAuthentication.FormsCookiePath);
HttpCookie ck = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(tkt));
ck.Path = FormsAuthentication.FormsCookiePath;
if (rememberMe)
ck.Expires = DateTime.Now.AddMonths(1);
response.Cookies.Add(ck);
}
Il relativo capitolo nel web.config è questo:
<authentication mode="Forms">
<forms loginUrl="Home.aspx" defaultUrl="~/" slidingExpiration="true" timeout="43200" />
</authentication>
Questo registra la multa utente, ma li si disconnette dopo mezz'ora se non utilizzano il sito, anche se la sua proprietà di persistenza (rememberMeChecked) è impostata su true e se è true, il cookie viene impostato per scadere dopo un mese. C'è qualcosa che mi manca qui?
Grazie in anticipo, F
io non sono sicuro se questo potrebbe fare la differenza in questo caso a tutti, però, cosa c'è di sbagliato con l'utilizzo di 'FormsAuthentication.RedirectFromLoginPage (username, rememberMe)'? È necessario creare manualmente il ticket? Se si specifica il timeout nella configurazione, non è necessario crearlo manualmente in codice, AFAIK. Inoltre, dove è impostato 'rememberMe'? –