Chrome localhost cookie ne pas définies
J'ai un ASP.net application qui utilise un cookie pour stocker l'utilisateur de la langue sélectionnée.
Tout fonctionne bien sauf quand je suis sur localhost.
En remplaçant localhost par 127.0.0.1 fait que cela fonctionne de nouveau... pourquoi?
J'ai vu l'intention des restrictions à file://, mais je ne peux pas vraiment trouver aucune référence à l'intention de restriction à localhost.
Ce que je ne peux pas vraiment comprendre, c'est pourquoi l'ASP.net Session (ASP.NET_SessionId) et ASP.net Cookies d'Authentification de Formulaires (.FSAUTHSSO) sont correctement définies pour le domaine localhost mais mes cookies ne sont pas... pourquoi?!
J'ai déjà googlé beaucoup et rien ne fonctionne:
- Réglage du Chrome option de ligne de commande --enable-fichiers-témoins [NE PAS
TRAVAIL] - Réglage du témoin de HttpOnly [N'a PAS d'importance]
- Changer d'Expiration de Session ou à une Date... [N'a PAS d'importance]
- De changer le Chemin du Cookie à la Racine (/) ou à quoi que ce soit d'autre [N'a PAS d'importance]
Donc, quelle est la matière? 🙂
Et pourquoi le ASP.net les cookies d'être ensemble et la mienne ne l'est pas? Quelle est la différence?
Dernière chose, pour ne mentionner que cela arrive aussi sur IE mais fonctionne très bien sur FF.
Merci!
Alex
- Quels sont les paramètres des cookies dans
Options->Under the Hood->Privacy->Content settings
? Ou avez-vous des Exceptions qui sont appliquées à localhost? - Je n'ai pas touché les paramètres de Google Chrome. Celui que vous me demandez, c'est réglé: les Cookies: Autoriser stockage des données locales (recommandé). Je n'ai également aucune des exceptions prévues... ne pas toucher aux paramètres par défaut...
- 4 ans plus tard, en l'an 2015, et ce encore problème.
- Depuis localhost serveurs exécutent souvent sous un autre port que je devrais mentionner que vous pourriez essayer de définir l'url du biscuit à l'aide d'un nom d'hôte sans un port explicite. Par exemple. au lieu de
cookie.url = '127.0.0.1:3001';
, vous pouvez essayer decookie.url = '127.0.0.1';
. Faire cela a fonctionné pour moi. Voir ici pour plus d'info: stackoverflow.com/questions/1612177/... - essayez de cookie.url=" ; laissez navigateur décider
Vous devez vous connecter pour publier un commentaire.
Les Cookies sont conçus pour le deuxième niveau et en bas. Première domaines de premier niveau ne fonctionnera pas. Au lieu de cela, vous devez utiliser l'adresse http://127.0.0.1 (comme vous l'avez mentionné), ou vous pourriez modifier votre fichier hosts pour carte une URL différente avec un TLD à l'adresse 127.0.0.1 comme:
Juste fait des recherches de plus; trouvé cette réponse: Les Cookies sur localhost avec de domaine explicite
s'il vous plaît essayer de mettre
cookie.Domain = null
sur localhost et utiliser le nom de domaine autrement.De bonnes nouvelles. Réglage des cookies sur localhost est maintenant possible sur Chrome départ Canary build:
https://code.google.com/p/chromium/issues/detail?id=551906
Cela a été me rend fou pendant des heures, puis j'ai réalisé:
J'ai récemment utilisé https://localhost et de définir un cookie avec le même nom.
C'est la raison pour http://localhost était impossible de définir le cookie
Je suis allé à https, effacé les cookies dans la "demande" dans l'onglet devtools et il a commencé à travailler avec http nouveau
J'ai juste eu le même problème en Chrome. J'ai eu cookie.Secure = true. Se débarrasser de que pour localhost résolu le problème pour moi.
(Eu exactement le même problème, FWIW: travaillé dans FF, pas IE ou Chrome)
Je sais que cela peut être idiot, mais il m'est juste arrivé où j'en ai pris un asp.net application mvc où je ne pouvais pas les faire fonctionner localement. Enfin, un autre développeur a mis en évidence une entrée dans le web.config qui a été ajouté récemment.
Réglage de la requireSSL à "false" localement. N'oubliez pas d'appliquer les transformations grâce à l'environnement.
J'espère que cette aide.
J'ai eu un problème sur chrome où un cookie avec une expiration d'un délai de 2 semaines dans l'avenir n'était pas ensemble - ce qui est arrivé à être le auth cookie (.AspNet.ApplicationCookie) j'ai donc été constamment redirigé vers la page de connexion. Ce problème ne se produit pas dans les autres navigateurs que j'ai essayé.
J'ai fini par expérimenter avec la coutume des cookies pour déterminer que chrome pensé à la date actuelle a été plus tôt que c'était en réalité - si par exemple j'ai mis dans un cookie, qui a expiré en 1 an aujourd'hui (2-Avr-2017) et effectivement chrome ensemble de ce cookie expire 1-Jan-2017! Ceci pourrait alors expliquer pourquoi un cookie avec un 2 la semaine de la date de péremption était déjà considéré comme expiré, que chrome a été coupant les 3 mois de l'expiration actuelle et donc considéré qu'il est déjà expiré.
Chrome redémarrage na pas corriger ceci, j'ai redémarré le PC, à ce stade, et ce "fixe" le bug. Aussi je note ce, ne s'est produite pour
localhost
- apparemment tous les autres site était ok.Pour ma situation, j'ai été l'exécution d'une asp.net base de rasoir pages de l'application à l'aide de iisexpress (localhost:####) et j'ai rencontré ce problème avec google Chrome. Ma solution était de assurez-vous que le iisSettings dans les Propriétés\launchSettings.json a nombre autre que 0 pour sslPort (44344). Avec le sslPort 0, iisexpress ne sera pas exécuté sera ssl. Changer 44344 puis exécute l'application à l'aide de ssl dans iisexpress. Alternative, aller les propriétés du projet dans Visual Studio et l'onglet Débogage pour Activer SSL va faire ce même changement de launchsettings.json Par exemple
Il y a un problème sur Chrome ouvert depuis 2011, que si vous êtes de définir explicitement le domaine comme 'localhost', vous devez définir comme
false
à travailler ou utiliser l'ensemble du domaine, comme127.0.0.1
.