У меня возникли проблемы с созданием непостоянного файла cookie с использованием FormsAuthenticationTicket. Я хочу сохранить пользовательские данные в билете, поэтому я не могу использовать методы FormsAuthentication.SetAuthCookie() или FormsAuthentication.GetAuthCookie(). Из-за этого мне нужно создать FormsAuthenticationTicket и сохранить его в HttpCookie.Создать непостоянный файл cookie с FormsAuthenticationTicket
Мой код выглядит следующим образом:
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);
Когда переменная isPersistent верно все работает отлично и куки сохраняются. Но когда isPersistent является ложным, cookie, похоже, сохраняется в любом случае. Я заходил в окно браузера, закрывал его и снова открывал браузер, и я все еще вошел в систему. Как настроить cookie на непостоянство?
Является ли непостоянные файлы cookie такими же, как файлы cookie сеанса? Является ли информация о файлах cookie, хранящаяся в данных сеанса на сервере, или является файлом cookie, переданным в каждом запросе/ответе на сервер?