Почему записи в файле хоста создают новые идентификаторы SessionID для каждого запроса - PullRequest
1 голос
/ 19 ноября 2010

Я работаю над обновлением одного из наших сайтов. Эта версия будет иметь уникальное поведение на основе имени хоста в запросе. Чтобы проверить это, я изменил файл хоста моего компьютера, добавив записи, которые указывают на мой компьютер.

127.0.0.1       newhostname.sample.com
127.0.0.1       oldhostname.sample.com

Казалось, что все работает нормально, пока я не начал работать с объектом Session. Я обнаружил, что после каждого запроса все мои переменные сеанса были потеряны. Дальнейшее расследование показало, что каждый ответ от сервера содержал новый SessionID.

Почему это так?

Мне удалось жестко запрограммировать некоторые флаги, чтобы завершить тестирование с использованием «localhost» для запросов без проблем.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2010

Я думаю, что это связано с доменом сайта и сессионным cookie-файлом - браузер не будет передавать cookie-файл, отправленный ему с oldhostname.sample.com, на newhostname.sample.com.

Чтобы это исправить, вам нужно указать домен отправляемого куки-файла сессии.Этот вопрос должен показать, как это сделать - Сеансовые куки ASP.NET - указав базовый домен .

В качестве альтернативы, вы можете использовать сеансы без файлов cookie.http://msdn.microsoft.com/en-us/library/aa479314.aspx

0 голосов
/ 02 декабря 2010

Я не могу это объяснить, но у меня есть подходящее решение моей собственной проблемы.

Вместо использования 127.0.0.1 в файле хоста я использую свой локальный IP-адрес. Поэтому запросы к именам в моем файле хоста обрабатываются локально, и я сохраняю один и тот же SessionID на всем сайте.

Если кто-то еще может объяснить, я был бы рад узнать, что делает IIS (или asp.net) при использовании 127.0.0.1.

...