Полная перезагрузка приложения Facebook с IE, но не с Chrome - PullRequest
1 голос
/ 02 ноября 2011

Я разработал приложение Facebook, используя Facebook C # SDK.Интересно, что всякий раз, когда пользователь нажимает на ссылку в Internet Explorer, вся страница перезагружается, включая список друзей справа и список чатов.Если сделать то же самое с Chrome, этого не произойдет - будет перезагружена только страница холста, но списки справа остаются нетронутыми.

Я отследил проблему с помощью Fiddler Web Debugger и обнаружил следующее.Предположим, мое приложение называется my_app и развернуто в Windows Azure (cloudapp.net).Таким образом, щелчок по ссылке (например, на ту же страницу) в IE приводит к следующим вызовам:

  1. my_app.cloudapp.net / Default.aspx
  2. www.facebook.com/dialog/oauth/...
  3. www.facebook.com / dialog / permissions /...
  4. cloudapp / facebookredirect.axd? state = ...
  5. apps.facebook.com / my_app /...
  6. my_app.cloudapp.net / Default.aspx

Обратный след от Chrome совершенно другой:

  1. my_app.cloudapp.net / Default.aspx
  2. www.facebook.com / extern / login_status.php? ...

По какой-то причине процесс авторизацииот хрома отличается.Я реализую авторизацию, как это делается в примерах файлов из Facebook C # SDK - используя CanvasAuthorizer.Authorize ().Любые идеи, почему эта проблема возникает, и есть ли у вас какие-либо рекомендации о том, как получить поведение Chrome в IE?

Большое спасибо, Йордан

1 Ответ

1 голос
/ 03 ноября 2011

Держу пари, что это проблема с cookie. IE может вести себя странно с файлами cookie в iFrames (вероятно, поэтому его повторная проверка подлинности при каждом запросе).

Я не знаю об этом SDK, но попробуйте добавить что-то подобное в свой код за главной страницей - это может помочь политика конфиденциальности P3P.

HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
...