Jaki jest cel FormsAuthenticationTicket jest własnością Właściwą?
Staram się nakręcić głowę do celuisPersistent
nieruchomość znaleziona naFormsAuthenticationTicket
klasa.http://msdn.microsoft.com/en-us/library/kybcs83h.aspx
isPersistent
prawda i fałsz?Właściwość wydaje się zbędna, ponieważ odkryłem, że jedynym sposobem na utrwalenie pliku cookie uwierzytelniania użytkowników w sesjach przeglądarki jest ustawienieExpires
właściwość pliku cookie utworzonego po utworzeniu biletu; nawet jeśli bilety są stałe, wartość jest ustawiona nafalse
.
Odkryłem również, że ustawienie wygasania biletów (nie ciasteczka) na jakieś 10 sekundisPersistent
ustawiona na prawda ma niewielki wpływ; bilet wygasa po 10 sekundach.
<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>
Doceniam, że mogę zmienić mój powyższy kod na opcjonalnie ustawionyexpires
<code>if (isPersistent) cookie.Expires = DateTime.Now.AddYears(1); // good for one year </code>
Utworzono przykładową aplikację @ GitHub.https://github.com/chrismoutray/AuthSample To pokazuje, że nawet ustawienie flagi isPersistent na wartość true powoduje, że autoryzacja krzyżowa nie działa.