FormsAuthenticationTicket expiration

J'ai été chercher sur le web et trouvé de nombreux bizarre réponses et j'ai essayé presque tous d'entre eux.
Mon problème est le suivant. Ma page de connexion contient:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(min), persistCookie, userid.ToString());
string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);

FormsAuthentication.RedirectFromLoginPage(userName, persistCookie);

Maintenant la valeur min est par l'utilisateur et peut être réglé individuellement, c'est persistCookie.

Après ce que je comprends, ce code devrait aboutir à la possibilité de substituant les valeurs par défaut dans le web.config. Qui doit être de 30 minutes.

<authentication mode="Forms">
  <forms loginUrl="~/Default/default.aspx" defaultUrl="~/User/UserMain.aspx"/>
</authentication>

min est actuellement fixée à 120, et persistCookie est trop vrai. Quand je me connecte je reçois délai d'attente de 30 minutes. (Pas de session, donc quelque part la date d'expiration est définie, car si il n'était pas définir le cookie doit être basée sur la session, aussi je ne reçois pas de 120 minutes, ce qui est la nature de l'affaire ici)

Ma question, pour simplifier, est de savoir comment puis-je obtenir la valeur " min " à la date d'expiration du cookie?

Ce pourrait aussi être une chose simple, mais je suis actuellement totalement bloqué de sorte que toute aide serait appriciated.

EDIT:
J'ai changé la connexion logique à cela:

FormsAuthenticationTicket fat = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(min), persistCookie, userid.ToString());
string encTicket = FormsAuthentication.Encrypt(fat);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket) { Expires = fat.Expiration });
Response.Redirect(FormsAuthentication.GetRedirectUrl(userName, false));

Et maintenant ça fonctionne. Mais je ne peux pas semblent comprendre pourquoi ce serait le travail, et pas de la précédente.
Billet de création est le même, la seule différence est que j'ai ajouter l'Expiration de la propriété de la HttpCookie lors de la création de la HttpCookie, pas après que l'objet est fait.

Si quelqu'un a une explication je suis preneuse! 🙂

OriginalL'auteur Bjørn | 2012-05-27