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