Какова цель свойства isPersistent для FormsAuthenticationTicket?
Я пытаюсь осмыслить цельisPersistent
свойство найдено наFormsAuthenticationTicket
учебный класс.http://msdn.microsoft.com/en-us/library/kybcs83h.aspx
isPersistent
to true and false?
Это свойство представляется избыточным, поскольку я обнаружил, что единственный способ сохранить файлы cookie для аутентификации пользователей в сеансах браузера - это установитьExpires
свойство файла cookie, созданного после создания заявки; даже если в параметре tickets isPersistent установлено значениеfalse
.
Я также обнаружил, что установка срока действия билетов (не cookie) примерно на 10 секунд сisPersistent
значение true мало влияет; Срок действия билета истекает через 10 секунд.
<code>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 </code>
Я ценю, что могу изменить свой код выше, чтобы установитьexpires
<code>if (isPersistent) cookie.Expires = DateTime.Now.AddYears(1); // good for one year </code>
Пример приложения был создан @ GitHub.https://github.com/chrismoutray/AuthSample Это в основном показывает, что даже если для флага isPersistent задано значение true, кросс-браузерная авторизация не работает.