Ho problemi a creare un cookie non persistente utilizzando FormsAuthenticationTicket. Voglio memorizzare userdata nel ticket, quindi non posso usare i metodi FormsAuthentication.SetAuthCookie() o FormsAuthentication.GetAuthCookie(). Per questo motivo ho bisogno di creare FormsAuthenticationTicket e memorizzarlo in un HttpCookie.Crea cookie non persistente con FormsAuthenticationTicket
Il mio codice è simile al seguente:
DateTime expiration = DateTime.Now.AddDays(7);
// Create ticket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2,
user.Email,
DateTime.Now,
expiration,
isPersistent,
userData,
FormsAuthentication.FormsCookiePath);
// Create cookie
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));
cookie.Path = FormsAuthentication.FormsCookiePath;
if (isPersistent)
cookie.Expires = expiration;
// Add cookie to response
HttpContext.Current.Response.Cookies.Add(cookie);
Quando l'isPersistent variabile è vero tutto funziona bene e il cookie viene mantenuto. Ma quando isPersistent è falso, il cookie sembra essere persistito comunque. Accedo in una finestra del browser, lo chiudo e riapre il browser e sono ancora connesso. Come faccio a impostare il cookie come non persistente?
Un cookie non persistente è uguale a un cookie di sessione? Le informazioni sui cookie sono memorizzate nei dati di sessione sul server o il cookie è trasferito in ogni richiesta/risposta al server?