Причины пользовательского агента 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 года.

2) http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx


Спасибо за помощь. Он работал нет.

  1. Я скопировал файл из сайт к C:\WINDOWS\microsoft.net\Framework\v2.0.50727\CONFIG\Browsers

  2. Выполнить В Командной Строке C:\WINDOWS\microsoft.net\Framework\v2.0.50727>aspnet_regbrowsers.exe -i

  3. перезапустите IIS.

  4. тестирование сайта и он работает без каких-либо ошибок.

еще раз спасибо за обратную связь


обновление для ответа nullptr.

Я попытался сегодня загрузить Microsoft KB2600088. Получив ссылку по электронной почте, я нажал на нее, после чего она привела меня на страницу, которая говорит, что она больше не доступна.

попробуйте это:http://support.microsoft.com/kb/2600217

эта ссылка является заменой для KB2600088 и KB2628838.

MIcrosoft .Net Framework 4.5 также доступен сейчас.


установлены различные патчи, которые все упоминают и по какой-либо причине проблема не была решена.

установлен .NET Framework 4.5 Full и проблема ушла.

вам не нужно обновлять какие-либо проекты до цели 4.5. Просто установите его на сервер.