2009-12-14 21 views
5

Im travaillant sur un projet web en ASP .NET MVC 2.cookies ASPXAUTH n'est pas enregistré

Dans ce projet, nous enregistrons quelques informations dans un cookie ecripted (le cookie ASPXAUTH) afin d'éviter la nécessité d'interroger la db pour chaque demande.

Le truc c'est que le code pour cette partie a soudainement cessé de fonctionner. J'ai examiné les modifications apportées au code sur le serveur de contrôle de source pour tout ce qui pourrait être à l'origine, je n'ai rien trouvé. Je suis même revenu à une copie de travail connue (travaillant sur d'autres PC, même code, etc.) mais après le débogage, il semble que le cookie .ASPXAUTH ne soit plus sauvegardé. Au lieu de cela, le cookie ASP.NET_SessionId est en cours de définition ... (ce qui n'était pas le cas auparavant)

J'ai modifié le fichier web.config pour désactiver sessionState. Cela a éliminé le cookie ASP.NET_SessionId d'être défini, mais il n'est toujours pas enregistrez le cookie d'authentification. J'ai récemment installé quelques mises à jour de Microsoft Windows XP, mais l'autre personne (qui exécute l'application très bien) a également fait.

Après avoir recherché sur google, certaines informations que j'ai trouvées ont mis en évidence un problème avec la date d'expiration du cookie. Ether cus le pc n'a pas eu le bon moment/date (ce n'était pas le cas) et d'autres cus de la date d'expiration du cookie étant mal réglé. (J'ai vérifié et il est réglé correctement) ...

Le problème persiste avec d'autres navigateurs en plus de celui en utilisant (Chrome) je l'ai essayé avec IE6.

Des idées sur pourquoi cela se passe-t-il?

Je continue de poster toute information utile que je peux trouver.

Merci d'avance.

Répondre

8

Cela peut signifier que votre cookie est devenu trop volumineux. J'ai rencontré le même problème. Si votre cookie devient trop grand, ça ne fonctionnera pas, selon le navigateur bien sûr

MSDN

les cookies sont généralement limités à 4096 octets et vous ne pouvez pas stocker plus de 20 cookies par site. En utilisant un seul cookie avec des sous-clés, vous utilisez moins de ces 20 cookies que votre site est attribué. En outre, un seul cookie prend environ 50 caractères pour le surcoût (informations d'expiration, etc.), plus la longueur de la valeur que vous stockez dans celui-ci, qui compte tous vers la limite de 4096 octets. Si vous stockez cinq sous-clés au lieu de cinq cookies distincts, vous économisez le surcoût des cookies séparés et pouvez économiser environ 200 octets.

What is the maximum size of a web browser's cookie's key?

what happens when cookies file exceeds maximum size?

+0

Vous l'avez cloué, c'est définitivement un problème de taille. Merci beaucoup. :] –

0

Un moyen facile de vérifier la taille des cookies est de débogage et exécutez le code suivant

int cookieSize = System.Text.UTF8Encoding.UTF8.GetByteCount(faCookie.Values.ToString()); 

Si cela est au-dessus de la limite, vous les questions rencontrerait des.

Questions connexes