Я разработал приложение для Facebook с помощью Facebook C# SDK. Интересно, что всякий раз, когда пользователь щелкает ссылку в Internet Explorer, вся страница перезагружается, включая список друзей справа и список чатов. Если сделать то же самое с Chrome, этого не происходит - перезагружается только страница холста, но списки справа остаются нетронутыми.
Я отследил проблему с помощью веб-отладчика Fiddler и обнаружил следующее. Предположим, что мое приложение называется my_app и развернуто в Windows Azure (cloudapp.net). Таким образом, клик по ссылке (например, на ту же страницу) в IE приводит к следующим вызовам:
- my_app.cloudapp.net/Default.aspx
- www.facebook.com/dialog/oauth/...
- www.facebook.com/dialog/permissions/...
- cloudapp/facebookredirect.axd?state=...
- apps.facebook.com/my_app/...
- my_app.cloudapp.net/Default.aspx
Бэктрейс из Chrome совершенно другой:
- my_app.cloudapp.net/Default.aspx
- www.facebook.com/extern/login_status.php?...
По какой-то причине процесс авторизации из Chrome отличается. Я реализую авторизацию так же, как это делается в примерах файлов из Facebook C# SDK — с помощью CanvasAuthorizer.Authorize(). Любые идеи, почему возникает эта проблема, и есть ли у вас какие-либо рекомендации о том, как получить поведение Chrome в IE?
Большое спасибо, Йордан