2011-01-14 2 views
47

Есть ли проблемы с отправкой файлов cookie во время перенаправления 302? Например, если я создаю cookie с возвратом к url ​​и перенаправляю пользователя в тот же ответ, любой (современный) браузер игнорирует cookie?Отправка файлов cookie браузера во время перенаправления 302

+0

Чтение немного, я думаю, что переменные сеанса будут лучше, чем файлы cookie, поскольку они являются серверными и не зависят от предсказуемости клиента. – ADTC

ответ

20

Большинство браузеров принимают cookies на 302 переадресации. Я был совершенно уверен в этом, но я сделал небольшой поиск. Не все современные браузеры. Internet archive Link from a now removed/dead/ microsoft connect Q/A on Silverlight Client HTTP Stack ignores Set-Cookie on 302 Redirect Responses (2010)

Я думаю, что у нас теперь есть замена для IE6, и это Windows Mobile браузеров ...

+1

Невозможно получить доступ к странице форума с помощью URL-адреса. Вы имеете в виду браузеры IE6 и Windows Mobile? – hiroshi

+1

ссылка переместилась. Я установил новую ссылку с таким же контентом. и я имел в виду IE конкретные версии для мобильных добавить свой собственный набор ошибок – regilero

31

Согласно этому сообщению в блоге: http://blog.dubbelboer.com/2012/11/25/302-cookie.html всех основных браузеров, IE (6, 7, 8, 9, 10) , FF (17), Safari (6.0.2), Opera (12.11) на обоих окнах и Mac, установите куки для перенаправления. Это верно для перенаправления 301 и 302.

10

Here является ошибкой Chromium для этой проблемы (Set-cookie игнорируется для ответа HTTP со статусом 302).

+0

Статус: WontFix - постоянная ошибка – Slawa

11

Одно уведомления (чтобы спасти жизнь разработчика):

IE и края пренебрегают Set-Cookie в ответ перенаправления, когда домен куков является локальным.

Решение:

Использование 127.0.0.1 вместо локальный.

+4

IE и Edge могут иметь «исправлено», чтобы они не устанавливали файлы cookie для 127.0.0.1. Doh! И они задаются вопросом, почему разработчики не все любят IE ... Ваш ответ по-прежнему закончился около 4-х часов для поглаживания головы для меня. Благодаря! – GlenPeterson

0

В моем случае я установил CookieOptions.Secure = true, но протестировал его на http://localhost., И браузер скрывает файлы cookie в соответствии с настройкой.

Чтобы избежать такой проблемы, вы можете сделать параметр cookie Secure подходящим для протокола Request.IsHttps, например.

new CookieOptions() 
       { 
        Path = "/", 
        HttpOnly = true, 
        Secure = Request.IsHttps, 
        Expires = expires 
       }