J'essaie de recréer mon cookie ce qui serait normalement généré par FormsAuthentication.SetAuthCookie() et ce qui est dans le webconfig.Qu'est-ce que je fais de mal avec mon formulaire FormsAuthenticationTicket?
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" protection="All" timeout="20160" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="false" defaultUrl="default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
</authentication>
Cependant je veux envoyer une pièce de plus de données le long de façon à ce que je comprends que je dois faire mon propre FormsAuthenticationTicket d'ajouter ces données (ou fusionner tout avec le nom en SetAuthCookie et faire le fractionnement).
Donc j'essaye de le rendre aussi sûr (ou plus sûr) que celui qu'il fait du webconfig, avoir les mêmes valeurs que celui généré par le webconfig.
Voilà donc ce que j'ai jusqu'à présent
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, "chobo2", DateTime.Now, DateTime.Now.AddYears(10), true, "test");
string encTicket = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
Cependant, je ne suis toujours pas sûr de ce qu'il utilise. Utilise-t-il des choses du webconfig? Comme il ne demande pas de cookieName ni de timeout.
Lorsque je regarde ce cookie par l'intermédiaire du développeur Web, il dit qu'il n'est pas sécurisé, et qu'il expire à la fin de la session.
Quand je regarde celui qui a été généré depuis le webconfig, il a une date d'expiration du 12 octobre et ne dit toujours pas sécurisé (devinez qu'il se réfère à SSL).
Aussi je suis toujours confus au sujet de l'userData. Comment ajouter que j'attrape cette valeur plus tard? Comment puis-je ajouter plus d'une fois des données? Dois-je toujours décrypter (ie appeler la méthode decrypt) pour déchiffrer le cookie ou le fait-il automatiquement?
Quel type de cryptage le cookie utilise-t-il par défaut de toute façon?
Merci
Hmm ok alors alors que fait le contenu du nouveau ticket FormsAuthenticationTicket()? Comme j'ai mis l'heure d'expiration et il ne fait rien. Alors, à quoi servent ces choses? – chobo2
Je pense que vous confondez le cookie avec le ticket. Le ticket est la chose qui gère l'état d'une session authentifiée entre le client et le serveur, le cookie est simplement le moyen par lequel l'état est stocké sur le client. L'expiration des cookies détermine quand le cookie expire sur le client. L'expiration du ticket détermine quand le ticket expire * sur le serveur *. Les paramètres de ticket sont interrogés sur le serveur pour déterminer la validité de la session authentifiée et associer le principal/l'identité approprié à la requête en cours d'exécution. – Neal
Alors que se passe-t-il si je veux que l'utilisateur reste authentifié pendant 2 semaines? qu'est-ce que je mets? – chobo2