46 votes

Pourquoi asp.net ne crée-t-il pas de cookies dans localhost?

Bon d'accord, c'est vraiment un peu de commencer à me gonfler. J'ai un projet Web simple d'installation situé à: "C:\Projects\MyTestProject\". Dans IIS sur ma machine, j'ai mappé un répertoire virtuel à cet endroit donc, je peux utiliser mes sites en local (je comprends que je ne peut l'exécuter à partir de Visual Studio, j'aime bien cette méthode est mieux). J'ai nommé ce répertoire virtuel "mtp" et j'y accéder via http://localhost/mtp/index.aspx. Tout cela fonctionne très bien.

Cependant, chaque fois que j'essaie de créer un cookie, tout simplement, il n'est jamais écrit? J'ai essayé ceci dans FF3 et IE7 et tout simplement de ne pas écrire le cookie sur. Je n'ai pas l'obtenir. J'ai "127.0.0.1 localhost" dans mon fichier hosts, je ne peux pas vraiment penser à autre chose que je peux faire. Merci pour tous les conseils.

James

95voto

Sire Points 1507

Le cookie spécifications besoin de deux noms et un point entre les deux, de sorte que votre cookiedomain ne peut pas être "localhost". Voici comment je l'ai résolu:

  1. Ajouter à votre dossier %WINDIR%\System32\drivers\etc\hosts fichier: 127.0.0.1 dev.livesite.com

  2. Lors de l'élaboration de vous utiliser http://dev.livesite.com au lieu de http://localhost

  3. Utiliser ".livesite.com" comme cookiedomain (avec un point au début) lors de la création du cookie.

  4. Maintenant, il fonctionne sur tous les sites:

16voto

Jason Eades Points 117

Puisqu'une réponse n'a jamais été choisie, je suppose que je peux toujours jeter autre chose.

Le paramètre httpCookies dans le fichier web.config est une des raisons pour lesquelles vous ne pouvez pas enregistrer de cookies en cours d’exécution avec une application exécutée sous localhost. Si l'attribut de domaine a été défini sur un domaine spécifique et que vous vous exécutez sous localhost, les cookies ne sont pas écrits pour moi.

Supprimez l'attribut de domaine en développement et les cookies sont écrits:

 <!-- Development -->
<httpCookies httpOnlyCookies="true" requireSSL="false" />
<!-- Production -->
<!--<httpCookies domain=".domain.com" httpOnlyCookies="true" requireSSL="true" />-->
 

0voto

Robert C. Barth Points 9788

Attribuez-vous une date d'expiration au cookie? Par défaut, le cookie expirera à l'expiration de la session du navigateur, ce qui signifie qu'il n'écrira rien sur le disque.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X