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

У меня есть веб-сайт ASP.NET (MVC), который обслуживает статический контент (изображения), а также динамический контент из того же домена. Сайт использует формы аутентификации и имеет контроллер входа в систему. Были некоторые очень странные / нерегулярные проблемы с людьми, которые входили в систему или выходили из нее через случайные промежутки времени, и мы отследили ее до проблемы с обратным прокси-сервером, кэширующим файл изображения, который имеет заголовок ответа set-cookie, который устанавливает аутентификационный файл cookie. После кеширования каждый получает один и тот же файл cookie аутентификации, что приводит к очень странным результатам.

Мой вопрос - как вообще изображение может получить заголовок set-cookie? Что такое ASP. Модуль проверки подлинности форм .NET делает это, чтобы вызвать это - безусловно, он устанавливает cookie в основном ответе содержимого HTML. Я получаю, что cookie аутентификации затем отправляется со всеми последующими запросами в домен, но я не могу понять, как cookie устанавливается в первую очередь.

(Кстати, эта проблема также может быть виновником как минимум двух существующих больших сайты электронной коммерции, которые страдают от аналогичных проблем, без решения, поэтому было бы неплохо их решить).

Ответ показан ниже (взят от скрипачей).

HTTP/1.1 200 OK
Cache-Control: public, max-age=86400,max-age=86400
Content-Type: image/png
Last-Modified: Thu, 04 Nov 2010 16:00:52 GMT
Accept-Ranges: bytes
ETag: "0528474397ccb1:0"
Server: Microsoft-IIS/7.5
Set-Cookie: my-auth-cookie=6BC25F1EF71989466A48C0120E7739E; path=/; HttpOnly
Date: Wed, 17 Nov 2010 17:15:08 GMT
Content-Length: 15790

Обновление: дополнительная информация - мы используем IIS 7.5 на Win2008 R2, 64-разрядная версия, и приложение работает в пуле приложений, который использует интегрированный конвейер / .net 4.

Обновление 2: я не ищу решения проблемы, оно у нас уже есть. Ищу ответ на вопрос, почему это вообще произошло? Пожалуйста, не отвечайте, рассказывая мне о субдоменах или о том, как работают файлы cookie!

Обновление 3: добавление в запрос:

GET https://www.example.com/sprite.png HTTP/1.1
Host: www.example.com
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: my-auth-cookie=6BC25F1EF71989466A48C0120E7739E;
14
задан user2840504 2 October 2013 в 23:32
поделиться