Accesstoken не доступен после повторного открытия веб-сайта - PullRequest
1 голос
/ 20 марта 2012

У меня есть веб-сайт MVC 3 с Facebook C # SDK. Теперь я переделываю интеграцию с Facebook в чистом приложении MVC 4 с новой версией 6 SDK. Поэтому я воспользовался страницей справки по началу работы на сайте SDK. http://csharpsdk.org/docs/web/getting-started

Я следовал этому уроку и изменил только одну его часть. То, что я изменил, было то, что я вызываю действие контроллера, потому что ashx был запущен, но не было разрешено установить токен доступа в объекте Session. Сессия была нулевой.

Теперь, когда я запускаю веб-сайт в первый раз (использовал Chrome, потому что IE не работает по умолчанию. В руководстве объясняется почему.), Я вижу кнопку входа в систему. Когда я нажимаю кнопку входа в систему, я получаю страницу авторизации facebook, которая спрашивает, что мое приложение хочет подключиться к моей учетной записи Facebook. Когда я отправляю, MVC-действие в контроллере запускается и данный токен доступа сохраняется в сеансе. После этого я могу получить доступ к своей собственной информации.

Когда я закрываю Visual Studio (IIS Express закрывается с ним) и перезагружаю веб-сайт, кнопка входа в систему меняется на мою учетную запись с изображением, которое говорит, что я использую приложение, которое подключено. После этого я возвращаюсь на страницу со своей собственной информацией и получаю исключение nullreference для сеанса, который получает токен доступа. Это почему? Почему пользователь вошел в систему, но действие, которое сохраняет токен доступа, не запускается во второй раз, когда я открываю веб-сайт (новый сеанс).

Разве я не должен где-то устанавливать секрет приложения? Я установил AppId в javascript после учебника.

Спасибо.

1 Ответ

0 голосов
/ 20 марта 2012

За Facebook ваш пользователь вошел в ваше приложение, но после перезапуска веб-сервера Cassini ваш «сеанс» пропал / потерян / удален.

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

...