Поток агента пользователя OAuth с настольным приложением C#

В настоящее время я пытаюсь использовать поток агента пользователя OAuth 2.0 с клиентским приложением C#, и я столкнулся с некоторой путаницей, связанной с URI перенаправления.

Поскольку я работаю с клиентским приложением, я не могу указать стандартный URL-адрес перенаправления на веб-сервер. Однако, по словам людей, с которыми я пытаюсь пройти аутентификацию (в данном случае Salesforce), поток User-Agent Flow является правильным для использования в клиентском приложении.

Мой вопрос: что я могу сделать, чтобы перехватить токен доступа в этой ситуации? Видимо, я могу создать "локальный ресурс, доступный клиенту", но я не знаком с механикой этого и не могу найти ресурсы по теме (отчасти потому, что не знаю, что искать).

Любые указатели относительно того, где я должен начать искать, были бы очень признательны.


Редактировать: Дальнейшие раскопки выявили следующий вопрос stackoverflow:

Как мне локально развиваться против OAuth?

Я еще немного изучаю то, что они предложили, но любые другие предложения тоже были бы замечательными.


Редактировать: еще несколько поисков выявили эту статью:

http://sarangasl.blogspot.com/2010/09/create-simple-web-service-in-visual.html

Все еще кажется, что я ковыряюсь в темноте, не понимая общей картины, но я считаю, что мне нужно настроить локальную веб-службу, используя localhost, и указать там свой URI перенаправления. Затем я буду использовать свой веб-сервис, чтобы развернуть ответ от сервера OAuth, и мое приложение отреагирует соответствующим образом. Будут еще обновления.


Ооооооо. Итак, из того, что мне удалось собрать, мне нужно настроить локальную веб-службу для использования в качестве обратного вызова для OAuth. Мне нужно самому прослушать указанную веб-службу и поймать обратный вызов, чтобы передать его моему приложению. Однако веб-служба ASP.NET по умолчанию, предоставляемая VS2010, не поддерживает параметры URL, а только вызовы API, поэтому вместо этого мне, по-видимому, нужно использовать стартовый комплект WCF Rest.

Я совершенно чужд всему этому, так что любые подсказки были бы находкой. В общем, я думаю, что настроил локальную службу WCF Rest, предоставил этот локальный URI для OAuth в качестве обратного вызова, а затем перехватил URL-адрес обратного вызова с помощью службы Rest. Затем я анализирую URL-адрес и извлекаю токен доступа. В этот момент мое приложение запрашивает токен доступа или моя веб-служба может «отдать» токен моему приложению? То есть, где должен быть локус контроля?

5
задан Community 23 May 2017 в 11:45
поделиться