сеанс потерян при перенаправлении - PullRequest
0 голосов
/ 26 марта 2009

У меня есть веб-приложение, которое работает на Facebook. Страница входа в систему извлекает нужные мне ключи и устанавливает некоторые переменные сеанса. Когда сервер затем перенаправляет пользователя на следующую страницу, информация о сеансе теряется. В настоящий момент я использую движок IIS на Vista Ultimate, пулы приложений не имеют значения, потому что я использую службу состояний и все еще теряю состояние сеанса. Я пробовал как перегруженный метод функции response.redirect, так и добавление заголовка на страницу, чтобы вызвать перенаправление, но ничего из этого не работает. У кого-нибудь есть идеи о том, чего мне не хватает?

Я пробовал оба из них:

Response.Headers.Add("refresh", "3;url=Dashboard.aspx")

И

Response.Redirect("Dashboard.aspx", False)

[EDIT]

Итак, я только что провел небольшой эксперимент, и хорошо получается, что когда я нажимаю URL-адрес прямо со страницы Facebook, у меня возникает проблема, но когда я копирую URL-адрес IFrame в новое окно браузера и пробую, это работает. хорошо.

[EDIT]

Итак, я нашел статью по этому вопросу, и после добавления заголовка проблема была решена (пока)

http://support.microsoft.com/kb/323752

Response.AddHeader("P3P: CP", "CAO PSA OUR")

Ответы [ 4 ]

1 голос
/ 26 марта 2009

Я бы попробовал запустить Fiddler и посмотреть, правильно ли отправляются ваши сеансовые cookie с ответом при взаимодействии с вашим приложением через Facebook.

1 голос
/ 26 марта 2009

Когда я нажимаю URL-адрес прямо со страницы Facebook, у меня возникает проблема, но когда я копирую URL-адрес IFrame в новое окно браузера и пробую его, он работает нормально.

Если вы находитесь в iframe, любые установленные вами файлы cookie являются «сторонними файлами cookie». На сторонние файлы cookie могут распространяться более строгие условия, чем на обычные «собственные» файлы cookie, которые вы устанавливаете, когда пользователь находится непосредственно на вашем сайте. Это может быть связано с другой обработкой файлов cookie по умолчанию в браузере или с тем, что пользователь специально настроил его таким образом. (И на то есть веская причина: многие третьи стороны являются неприятными рекламодателями, нарушающими конфиденциальность.)

В частности, в IE6 + с настройками по умолчанию вы не можете установить сторонний cookie, если не напишите P3P policy , обещая, что вы будете хорошим мальчиком и не будете порвать данные ваших пользователей на ближайший опознать вора.

(На практике, конечно, P3P - это полная потеря, так как ничто не мешает владельцу сайта просто лгать. Еще одно бесполезное осложнение, которое не обеспечивает реальной безопасности. Ууу.)

0 голосов
/ 26 марта 2009

Response.Redirect и обновление не переносят сессию. Server.Transfer () может, но теряет возможность переноса на другие серверы / сайты.

0 голосов
/ 26 марта 2009

Сеанс зависит также от поддержки файлов cookie клиентом. Когда вы говорите, что приложение «поражает Facebook», вы уверены, что каким-либо образом они «бьют» вас, они поддерживают куки?

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