Файл cookie проверки подлинности ASP.NET Forms не установлен в IE9 независимо от настроек файлов cookie браузера - PullRequest
3 голосов
/ 03 февраля 2012

У нас есть приложение ASP.NET, работающее в .NET 3.5, и мы столкнулись с проблемой, что cookie для проверки подлинности форм не установлен в IE9. Из заголовков HTTP видно, что в ответе существует заголовок Set-Cookie, но следующий запрос не включает этот файл cookie.

Я пытался изменить все настройки в IE, которые я мог найти, которые могут относиться к куки, и ничего не помогло. В частности:

Инструменты> Параметры> Безопасность> Надежные сайты> Добавлено ..

Инструменты> Параметры> Безопасность> Снимите флажок «Включить защищенный режим»

Инструменты> Параметры> Конфиденциальность> Принять все файлы cookie (самые низкие)

Инструменты> Параметры> Конфиденциальность> Сайты> Добавлено ..

Инструменты> Параметры> Конфиденциальность> Дополнительно> Переопределить автоматически ..

Инструменты> Параметры> Конфиденциальность> Дополнительно> Всегда разрешать сеансовые куки

Вот заголовки ответа с файлом cookie, за которым следует следующий запрос, который не включает его:

HTTP/1.1 302 Found
Date: Sun, 29 Jan 2012 01:45:17 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Location: /Default.aspx
Set-Cookie: MyApp=34C244EF0AAD...; expires=Sun, 29-Jan-2012 03:45:17 GMT; path=/
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 8520


GET /Default.aspx HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://app.myserver.edu/sec/login.aspx
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; MALC)
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: app.myserver.edu
Pragma: no-cache
Cookie: ASP.NET_SessionId=nybswv45aezj5wioscv832jg

Есть ли способ узнать, почему IE9 не устанавливает cookie? Что-нибудь, что я могу настроить в моем файле Web.config, чтобы это отразилось на этом? Мой раздел аутентификации это:

    <authentication mode="Forms">
        <forms name="MyApp" loginUrl="/sec/login.aspx"/>
    </authentication>

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Саймон Свенссон был прав в своем комментарии. Заголовки, размещенные выше, старые, но не такие старые, как дата в заголовке. Время сервера отключено на несколько дней, поэтому, когда сервер отправляет время истечения, даже если оно на два часа опережает время отклика сервера, оно истекает через время истечения в соответствии с часами клиента.

Исправление часов сервера решило проблему. Спасибо Саймон!

0 голосов
/ 03 февраля 2012

Если вы загружаете веб-сайт ASP.NET в рамках IFRAME, вам нужно будет включить заголовки P3P. См. Cookie заблокирован / не сохранен в IFRAME в Internet Explorer

Я считаю, что ваш сайт работает на Chrome, Firefox и т. Д., Так как вы специально упомянули IE9.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...