Mam problemy z utworzeniem nietrwałego pliku cookie za pomocą formularza FormsAuthenticationTicket. Chcę zapisać userdata w bilecie, więc nie mogę używać metod FormsAuthentication.SetAuthCookie() ani FormsAuthentication.GetAuthCookie(). Z tego powodu muszę utworzyć formularz FormsAuthenticationTicket i przechowywać go w HttpCookie.Tworzenie nietrwałego pliku cookie za pomocą formularza FormsAuthenticationTicket
Mój kod wygląda następująco:
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);
Gdy zmienna isPersistent prawda wszystko działa poprawnie i plik cookie jest zachowywane. Ale kiedy jest trwały, ciasteczko wydaje się być utrzymane. Zalogowałem się w oknie przeglądarki, zamknąłem i ponownie otworzyłem przeglądarkę, a ja nadal jestem zalogowany. Jak ustawić plik cookie jako nietrwały?
Czy nietrwały plik cookie jest taki sam jak plik cookie sesji? Czy informacje o plikach cookie są przechowywane w danych sesji na serwerze lub czy pliki cookie są przesyłane w każdym żądaniu/odpowiedzi na serwer?