Was ist der Zweck der Eigenschaft isPersistent von FormsAuthenticationTicket?

Ich versuche meinen Kopf um den Zweck derisPersistent Eigentum gefunden auf demFormsAuthenticationTicket Klasse.http://msdn.microsoft.com/en-us/library/kybcs83h.aspx

Gibt es Szenarien bei der Einstellung von isPersistent Works?In welche Szenarien würde ich gerne einstellenisPersistent zu wahr und falsch?

Die Eigenschaft scheint überflüssig zu sein, da ich die einzige Möglichkeit gefunden habe, das Authentifizierungscookie meines Benutzers über Browsersitzungen hinweg beizubehalten, ist das Festlegen derExpires Eigentum des Cookies, das nach der Erstellung des Tickets erstellt wurde; Auch wenn der Wert für tickets isPersistent auf festgelegt istfalse.

Ich habe auch festgestellt, dass das Setzen des Ticketablaufs (nicht des Cookies) auf etwa 10 Sekunden mitisPersistent auf true gesetzt hat wenig Wirkung; Das Ticket verfällt nach 10 Sekunden.

<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>

Ich weiß zu schätzen, dass ich meinen obigen Code in einen optionalen Code ändern kannexpires

<code>if (isPersistent)
    cookie.Expires = DateTime.Now.AddYears(1); // good for one year
</code>

Eine Beispielanwendung wurde bei GitHub erstellt.https://github.com/chrismoutray/AuthSample Dies zeigt im Grunde, dass die browserübergreifende Autorisierung nicht funktioniert, selbst wenn das Flag isPersistent auf true gesetzt wird.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage