Почему asp.net не создает файлы cookie в localhost?
Хорошо, это действительно похоже на меня. У меня есть простая настройка веб-проекта, расположенная по адресу: "C:\Projects\MyTestProject". В IIS на моей машине я сопоставил виртуальный каталог с этим местом, чтобы я мог локально запускать свои сайты (я понимаю, что могу запустить его из Visual Studio, мне нравится этот метод лучше). Я назвал этот виртуальный каталог "mtp", и я обращаюсь к нему через http://localhost/mtp/index.aspx. Все это прекрасно работает.
Однако, когда я пытаюсь создать файл cookie, он просто никогда не выписывается? Я пробовал это в FF3 и IE7, и он просто не будет писать cookie. Я не понимаю. У меня есть "127.0.0.1 localhost" в файле моих хостов, я не могу думать ни о чем другом, что могу сделать. Спасибо за любой совет.
Джеймс
Ответы
Ответ 1
Спецификации cookie требуют двух имен и точки между ними, поэтому ваш cookiedomain не может быть "localhost". Вот как я это решил:
-
Добавьте это в файл% WINDIR%\System32\drivers\etc\hosts:
127.0.0.1 dev.livesite.com
-
При разработке вы используете http://dev.livesite.com вместо http://localhost
-
Используйте ".livesite.com" как cookiedomain (с точкой в начале) при создании файла cookie.
Современные браузеры больше не нуждаются в ведущей точке, но вы, возможно, захотите использовать обратную совместимость.
-
Теперь он работает на всех сайтах:
Ответ 2
Поскольку ответ никогда не был выбран, я полагаю, что я все еще могу выбросить что-то еще.
Одной из причин, по которым вы не можете использовать файлы cookie, написанные с помощью приложения под управлением localhost, является параметр httpCookies в файле web.config. Если атрибут домена был установлен в определенный домен и вы запускаете его под локальным хостом, куки файлы не были написаны для меня.
Удалите атрибут домена в разработке и куки файлы написаны:
<!-- Development -->
<httpCookies httpOnlyCookies="true" requireSSL="false" />
<!-- Production -->
<!--<httpCookies domain=".domain.com" httpOnlyCookies="true" requireSSL="true" />-->
Ответ 3
Вы назначаете дату истечения срока действия cookie? По умолчанию cookie истекает, когда сеанс браузера истекает, то есть он ничего не записывает на диск.