“Ricordami” con le pagine web di asp.net

Mi rendo conto che questa domanda potrebbe essere stata chiesta in precedenza, ma non riesco a trovare nulla che corrisponda esattamente alla mia situazione.

Ho creato un sito Web utilizzando l’helper WebMail nelle pagine Web ASP.Net ( non nei moduli Web) e WebMatrix. Gli utenti sono tenuti ad accedere al sito Web, e c’è una casella “Ricordami” che (in teoria) manterrà l’utente connesso fino a quando non sceglie di disconnettersi. Il sito Web tiene gli utenti collegati se chiude il browser e lo riapre entro 20-30 minuti. Tuttavia, dopo 20-30 minuti di non accesso al sito Web, l’utente viene disconnesso. (Per inciso, questo problema sembra esistere anche con il modello “Sito d’inizio” di WebMatrix.)

Ho provato più soluzioni, molte delle quali sono state pubblicate su Stack Overflow, ma nulla sembra funzionare.

MODIFICA 2

Il cookie utilizzato da Autenticazione moduli viene chiamato “.ASPXAUTH” e, per impostazione predefinita, scade dopo 30 minuti.

Vai al tuo web.config e trova l’elemento di authentication . È ansible impostare il tempo di scadenza del cookie (in minuti) lì, come ad esempio:

    timeout="2880" />    

O

Se la configurazione fallisce, prova questo articolo: Link

Dovrai cancellare tutti i ticket di authorization esistenti e crearne uno personalizzato. Si riduce a questo pezzo di codice che devi eseguire se l’utente ha selezionato l’opzione remember me :

  if (rememberMe) { // Clear any other tickets that are already in the response Response.Cookies.Clear(); // Set the new expiry date - to thirty days from now DateTime expiryDate = DateTime.Now.AddDays(30); // Create a new forms auth ticket FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2, loginModel.UserName, DateTime.Now, expiryDate, true, String.Empty); // Encrypt the ticket string encryptedTicket = FormsAuthentication.Encrypt(ticket); // Create a new authentication cookie - and set its expiration date HttpCookie authenticationCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); authenticationCookie.Expires = ticket.Expiration; // Add the cookie to the response. Response.Cookies.Add(authenticationCookie); } 

È ansible creare manualmente un cookie (non in scadenza) contenente un GUID mappato all’utente. Quando l’utente effettua un GET alla pagina di accesso dell’utente, è ansible leggere quel cookie e controllare il guid e autenticare l’utente. controllare i collegamenti

http://msdn.microsoft.com/en-us/library/ms178194(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/78c837bd(v=vs.100).aspx

http://www.codeproject.com/Articles/31914/Beginner-s-Guide-To-ASP-NET-Cookies