web-dev-qa-db-fra.com

Pourquoi ASP.NET ne créera-t-il pas de cookies dans localhost?

Ok, c'est vraiment un peu commençant à me boguer. J'ai une simple configuration de projet Web situé à l'adresse suivante: "C:\Projects\myTestProject \". IN IIS sur ma machine, j'ai mappé un répertoire virtuel à cet endroit afin que je puisse exécuter mes sites localement (je comprends que je peux l'exécuter de Visual Studio, j'aime mieux cette méthode). Je ont nommé ce répertoire virtuel "MTP" et j'y ai accès via http: //localhost/mtp/index.aspx . Tout cela fonctionne bien.

Cependant, chaque fois que j'essaie de créer un cookie, il n'est tout simplement jamais écrit? J'ai essayé ceci dans FF3 et IE7 et c'est juste simple n'écrira pas le cookie. Je ne comprends pas. J'ai "127.0.0.1 localhost" dans mon fichier d'hôtes, je ne peux pas vraiment penser à autre chose que je puisse faire. Merci pour tout conseil.

James

42
James McConnell

Les spécifications de cookies nécessitent deux noms et un point entre, de sorte que votre cookiedomain ne peut pas être "localhost". Voici comment j'ai résolu ce problème:

  1. Ajoutez ceci à votre% Windir%\System32\Drivers\etc\hosts Fichier: 127.0.0.1 dev.liveSite.com

  2. Lorsque vous développez, vous utilisez http://dev.livesite.com au lieu de http: // localhost

  3. Utilisez ".LiveSite.com" comme cookiedomain (avec un point au début) lors de la création du cookie. Les navigateurs modernes ne nécessite plus d'un point de dirigeant , mais vous pouvez utiliser de toute façon utiliser la possibilité de l'accomplissement.

  4. Maintenant, cela fonctionne sur tous les sites:

91
Sire

Puisque une réponse n'a jamais été choisie, je suppose que je peux toujours jeter quelque chose d'autre là-bas.

Une des raisons pour lesquelles vous pouvez rencontrer aucun cookies n'est écrit avec une application exécutée sous Localhost est le paramètre httpcookies dans le Web.config. Si l'attribut de domaine a été défini sur un domaine spécifique et que vous utilisez sous Localhost, les cookies ne sont pas écrits pour moi.

Supprimer l'attribut de domaine dans le développement et les cookies sont écrits:

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

Vous attribuez une date d'expiration au cookie? Par défaut, le cookie expirera lorsque la session de navigateur expire, ce qui signifie qu'elle n'écrira rien sur le disque.

0
Robert C. Barth