IE8 не всегда редактирует значение cookie - PullRequest
2 голосов
/ 31 марта 2011

Я столкнулся с проблемой, когда вход в систему на моем сайте не работает постоянно в IE8. Он отлично работает в Firefox / Chrome / Safari, но не в IE8.

При первом входе все нормально. После выхода из системы и повторной попытки входа в нее обычно происходит некоторое время. После аутентификации он будет перенаправлен на страницу входа.

Таким образом, аутентификация прошла успешно, она возвращает true, но кажется, что IE8 не принимает новое значение для идентификатора сеанса, который мы установили, возвращая:

Set-Cookie SESSIONID = ........; Path = /

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

Я не нашел здесь или в другом месте ничего, что действительно решало бы это (кроме очистки кеша). Большинство ссылок на проблемы с файлами cookie IE8 относятся к конкретному языку / среде и не решают эту проблему.

Есть ли что-то особенное, что мне может понадобиться сделать с set-cookie для этой работы?

UPDATE:

Я настроил IE8 на запрос, прежде чем принимать какие-либо куки. Когда логин работает нормально, он запрашивает, как и ожидалось. Когда это не работает, нет даже приглашения, кроме файла cookie ..

ОБНОВЛЕНИЕ 2:

Я должен был упомянуть, что cookie, как ожидается, будет установлен после вызова ajax:

$. Get (authenticate_url, ....)

URL-адрес, от которого он запрашивает ответ, возвращает заголовок, который устанавливает идентификатор сеанса, затем в функции обратного вызова пользователь перенаправляется на главную страницу - при условии успешного входа в систему.

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Я столкнулся с похожими симптомами, когда у меня установлены файлы cookie для www.example.com и example.com.Если домен явно не задан, то сеансовые куки-файлы устанавливаются для обоих.

Однако доменные куки-файлы более высокого уровня имеют приоритет над нижним домианином.Таким образом, если www.example.com пытается установить cookie, но example.com уже имеет, то cookie example.com остается на месте и продолжает подавать заявку на www.example.com.

. Есть два способа приблизиться к этому.проблема.Один не разрешает доступ как с субдоменом www, так и без него.Перенаправить один на другой.Второй - явно установить домен cookie, чтобы не было двух версий.

Конечно, это может и не быть вашей проблемой.Экспериментируйте и узнайте:)

1 голос
/ 31 марта 2011

Это первый или сторонний файл cookie.Если последнее, убедитесь, что вы отправляете заголовок P3P.Вы устанавливаете атрибут HTTPOnly?Вы уверены, что домен для куки всегда один и тот же?Например, если вы установили cookie при посещении «example.com» и попытались изменить его с «www.example.com», то у вас возникнут проблемы.

...