Почему asp.net не создает куки в localhost?

Ладно, это действительно начинает меня беспокоить. У меня есть простая настройка веб-проекта, расположенная по адресу: "C:\Projects\MyTestProject\". В IIS на моем компьютере я сопоставил виртуальный каталог с этим местоположением, чтобы я мог запускать свои сайты локально (я понимаю, что могу запускать его из Visual Studio, мне этот метод больше нравится). Я назвал этот виртуальный каталог "mtp", и я обращаюсь к нему через http://localhost/mtp/index.aspx. Все это работает нормально.

Однако всякий раз, когда я пытаюсь создать печенье, оно просто никогда не записывается? Я пробовал это в FF3 и IE7, и это просто не будет записывать куки. Я не понимаю У меня есть "127.0.0.1 localhost" в моем файле hosts, я не могу придумать что-либо еще, что я могу сделать. Спасибо за любой совет.

Джеймс

3 ответа

Спецификации cookie требуют двух имен и точки между ними, поэтому ваш домен не может быть "localhost". Вот как я это решил:

  1. Добавьте это в ваш файл%WINDIR%\System32\drivers\etc\hosts: 127.0.0.1 dev.livesite.com

  2. При разработке вы используете http://dev.livesite.com/ вместо http://localhost/

  3. Используйте ".livesite.com" как cookiedomain (с точкой в ​​начале) при создании куки. В современных браузерах больше не требуется начальная точка, но вы все равно можете использовать ее для обратной совместимости.

  4. Теперь это работает на всех сайтах:

Так как ответ никогда не был выбран, я полагаю, что я все еще могу выбросить что-то еще.

Одной из причин, по которой вы не можете записать файлы cookie в приложении, работающем под localhost, является настройка httpCookies в файле web.config. Если для атрибута домена был задан определенный домен, а вы работаете под локальным хостом, файлы cookie не были записаны для меня.

Удалите атрибут домена в разработке, и куки пишутся:

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

Вы назначаете дату истечения срока действия куки? По умолчанию срок действия файла cookie истекает по окончании сеанса браузера, то есть он ничего не записывает на диск.

Другие вопросы по тегам