Аутентификация / удаление файлов cookie сеанса после закрытия браузера
Каковы точные шаги, необходимые для сохранения cookie после закрытия браузера? На данный момент у меня есть:
createPersistentCookie
установлен вtrue
наLoggedIn
событие.MachineKey указан.Формы скользящего истечения установлены вtrue
.Пока браузер открыт, пользователь будет оставаться в системе, но как только он закроется, и не имеет значения, как долго, пользователю необходимо будет снова войти в систему. Чего мне не хватает?
РЕДАКТИРОВАТЬ: Я просмотрел статью, на которую указал marapet (см. Комментарии ниже), и меня заинтересовало, действительно ли в билете есть флаг IsPersistent, что и есть. Расшифрованный билет выглядит так:System.Web.Security.FormsAuthentication.Decrypt(Request.Cookies[System.Web.Security.FormsAuthentication.FormsCookieName].Value) {System.Web.Security.FormsAuthenticationTicket} CookiePath: "/" Expiration: {19/08/2010 17:27:14} Expired: false IsPersistent: true IssueDate: {19/07/2010 17:27:14} Name: "alex" UserData: "" Version: 2
Все данные верны и соответствуют тем, которые я установил в событии LoggedIn. Более того, значение cookie, которое я могу получить непосредственно из cookie, идентично этому. Тем не менее, как только я закрываю браузер, cookie теряется.
Однако я заметил, что для куки-файла, содержащего билет, по некоторым причинам сброшена дата. Во-первых, я не могу переопределить настройки в web.config, поэтому в конце события LoggedIn его свойство Expires составляет 4000 минут после даты выпуска, а не месяц, который я устанавливаю программно. Затем, после загрузки страницы, cookie, который я получаю с помощью FormsAuthentication. FormsCookieName имеет свойство Expires 01/01/0001. Я думаю, возможно, в этом и заключается проблема? Любые мысли будут оценены.
EDIT 2: Я изменяю заголовок и теги, чтобы включить сессию, поскольку это оказалось актуальным для проблемы / решения