Я пытаюсь склонить голову к цели свойства isPersistent
, найденного в классе FormsAuthenticationTicket
. http://msdn.microsoft.com/en-us/library/kybcs83h.aspx
- Существуют ли сценарии при настройке isPersistent?
- В каких сценариях я хочу установить
isPersistent
в true и false?
Свойство кажется избыточным, так как я нашел единственный способ сохранить сохранение cookie моих пользователей в сеансах браузера, чтобы установить свойство Expires
файла cookie, созданного после создания билета; даже если для билета значение PERistent установлено значение false
.
Я также обнаружил, что установка истечения билетов (а не файла cookie) на что-то вроде 10 секунд при isPersistent
, установленном в true, мало влияет; билет истекает через 10 секунд.
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
identity.Name,
DateTime.Now,
DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes),
isPersistent,
JsonSerializerService.ToJson(identity),
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Expires = DateTime.Now.AddYears(1); // good for one year
Я ценю, что я могу изменить свой код выше, чтобы установить Expires
if (isPersistent)
cookie.Expires = DateTime.Now.AddYears(1); // good for one year
Создано примерное приложение @GitHub. https://github.com/chrismoutray/AuthSample В основном это показывает, что даже установив флаг isPersistent в true, разрешение на перекрестный браузер не работает.