Я разрабатываю приложение asp.net для dropbox, и оно работает, по крайней мере, в режиме локального хоста. Но я столкнулся с проблемой, которая, я надеюсь, возникает только во время тестирования на локальном хосте и не будет (НЕ МОЖЕТ) возникать в производстве. Это немного сложно объяснить, поэтому я опишу это по шагам.
1) Браузер не запущен, и я запускаю «целевую страницу входа в систему» в отладчике. Он запрашивает у Dropbox логин и разрешение. В настоящее время в моем классе, производном от Oauth, я храню свой объект раскрывающегося списка с токеном доступа и секретом в переменной сеанса.
2) На моей фактической странице «Вход в систему» я извлекаю объект из сеанса и начинаю использовать Dropbox, и он отлично работает.
3) Теперь предположим, что я прекращаю отладку из Visual Studio 2012. Внесите некоторые изменения в код. Теперь я начинаю снова. На этот раз браузер уже вошел в систему в Dropbox, и целевая страница отображается в системе. Я не вижу приглашения «Разрешить» из Dropbox. Но теперь нет переменной сеанса для извлечения моего объекта раскрывающегося списка, потому что это новый сеанс. Но для dropbox это уже зарегистрированный сеанс.
Я хочу подтвердить, что эта ситуация может возникнуть только во время работы локального хоста и не может возникнуть в реальном рабочем приложении, потому что оно всегда будет идти с веб-сайта в браузере, у которого будет свой собственный сеанс. Или может возникнуть? Какое решение в таком случае.
Еще одно сомнение заключается в том, почему Dropbox не запрашивает приглашение «Разрешить» в следующий раз, если браузер открыт, но приложение начинает новый сеанс. Он должен откуда-то получать тот же токен доступа и секрет. Откуда?