Причины пользовательского агента IE10 ASP.Net чтобы не отправлять обратно Set-Cookie (IE10 не устанавливает cookies)
резюме
ASP.Net не отправляет обратно Set-Cookie
заголовок при использовании IE 10. Это означает, что, например, вы не можете войти в ASP.Net например, сайт, использующий IE10 при использовании проверки подлинности форм.
деталь
в настоящее время мы тестируем одно из наших устаревших веб-приложений против IE 10 [Preview 2].
при попытке входа в систему с помощью проверки подлинности форм мы не получаем Set-Cookie
заголовок в ответе, если user-agent-это IE 10. Мы пробовали это с пустым сайтом .Net 2 и .Net 4.
потому что мы не могли / не поверили бы этому, мы даже запустили следующий HTTP-запрос вручную через telnet
- после использования всех обычных инструментов-и получил тот же ответ.
GET http://test.ourdomain.co.uk/ HTTP/1.1
Accept: */*
Host: test.ourdomain.co.uk
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Content-Length: 0
приведенный выше HTTP-запрос возвращает no Set-Cookie
в ответ. Но если мы просто изменим User-Agent на Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0)
это работает!
может ли кто-нибудь повторить это? Я не могу найти какую-либо известную проблему с IE10 файлы cookie, отличные от проблемы, которая влияет на нестандартные шаблоны URL.
исправления
после devio опубликовано оригинальный ответ, с обходным путем,nullptr имеет подтвердить, что теперь есть исправление для этого.
http://support.microsoft.com/kb/2600088
я продвинул исправление к основному вопросу, поскольку это просто удобнее для дальнейшего использования, но, пожалуйста, сделайте up-vote упомянутые пользователи.
6 ответов
нашел эту запись на MS Connect, поведение является признанной ошибкой.
предлагаемое обходное решение (из записи):
== решение ==
тем временем, чтобы заставить его работать и избегать подобных проблем в в будущем я использую файл ~\App_Browsers\BrowserFile.браузер с следующий:
<browsers>
<browser refID="Default">
<capabilities><!-- To avoid wrong detections of e.g. IE10 -->
<capability name="cookies" value="true" />
<capability name="ecmascriptversion" value="3.0" />
</capabilities>
</browser>
</browsers>
проблема заключается в том, что некоторые экземпляры IIS думают, что IE10-это браузер без cookies (т. е. не поддерживает cookies). В нашем проблемном случае сервер устанавливал файл cookie аутентификации и отправлял его обратно в браузер, но затем игнорировал файл cookie при последующих запросах.
решение состоит в том, чтобы либо исправить возможности браузера, чтобы он знал, что IE10 может делать куки (описанные в другом ответе на этой странице), либо изменить поведение по умолчанию, чтобы заставить его использовать cookies, даже если он думает, что браузер не может делать cookies.
мы просто добавили следующее в наш раздел форм в интернете.config:
cookieless= "UseCookies"
<authentication mode="Forms">
<forms name=".AUTH" cookieless="UseCookies" loginUrl="/" timeout="10000" path="/" />
</authentication>
для этой проблемы доступно исправление[1].
1) http://support.microsoft.com/kb/2600088
1)http://support.microsoft.com/kb/2600217 (заменяет предыдущий КБ)
кроме того, [2] предполагает, что это попадет в Центр обновления Windows в январе 2012 года.
Спасибо за помощь. Он работал нет.
Я скопировал файл из сайт к
C:\WINDOWS\microsoft.net\Framework\v2.0.50727\CONFIG\Browsers
Выполнить В Командной Строке
C:\WINDOWS\microsoft.net\Framework\v2.0.50727>aspnet_regbrowsers.exe -i
перезапустите IIS.
тестирование сайта и он работает без каких-либо ошибок.
еще раз спасибо за обратную связь
обновление для ответа nullptr.
Я попытался сегодня загрузить Microsoft KB2600088. Получив ссылку по электронной почте, я нажал на нее, после чего она привела меня на страницу, которая говорит, что она больше не доступна.
попробуйте это:http://support.microsoft.com/kb/2600217
эта ссылка является заменой для KB2600088 и KB2628838.
MIcrosoft .Net Framework 4.5 также доступен сейчас.
установлены различные патчи, которые все упоминают и по какой-либо причине проблема не была решена.
установлен .NET Framework 4.5 Full и проблема ушла.
вам не нужно обновлять какие-либо проекты до цели 4.5. Просто установите его на сервер.