API на основе MVC - как реализовать OAuth?

Я уже несколько часов пытаюсь заставить OAuth работать с API, над которым я работаю, и, очевидно, мой подход должен быть неправильным, потому что я постоянно захожу в тупик .

Что у меня есть:
- API, реализованный в .NET MVC, который возвращает результат данных в формате XML или JSON.
- Для использования API требуется ключ API.
- Веб-сайт (X) как серверная часть для управления ключами API.
- Другой веб-сайт (Y) с множеством данных, из которых этот API извлекает данные.

Что я должен получить:
- Возможность разрешить ключам API получать доступ к данным о пользователях с веб-сайта (Y), если они сами разрешают это через OAuth (1.0A).

Что я пробовал:
- До сих пор мой подход заключался в использовании библиотеки DotNetOpenAuth, но почти все дело в том, как реализовать OpenId, а некоторые классы в пространстве имен OAuth даже кажутся жестко привязанными к функциональности OpenId. Итак, я пытался увидеть, что происходит в примерах, использующих OpenId, и посмотреть, могу ли я использовать его части для реализации OAuth без OpenId.
- Различные подходы включают на стороне сервера чтение «UnauthorizedTokenRequest» и его возврат с помощью вызова ServiceProvider.Channel.PrepareResponse (unauthorizedTokenRequest) .AsActionResult (), который по какой-то причине пытается добавить два значения nonce и timestamp к response, который дает сбой, и пропуская его, он все равно возвращает ответ, который я не могу прочитать на стороне клиента.

Итак, я думаю, у меня действительно такой вопрос:

  1. Есть ли руководство / документация, в которых рассказывается, какие части библиотеки DotNetOpenAuth мне следует использовать на стороне сервера, и когда в процессе они должны использоваться, в чтобы реализовать OAuth на сервере MVC, который не привязан к OpenId жестко, поскольку ни один из веб-сайтов (X или Y) не поддерживает OpenId?
  2. Должен ли я лучше использовать другую библиотеку, если я не собираюсь использовать OpenId, поскольку DotNetOpenAuth кажется уделять больше внимания?
  3. Мы приветствуем любые другие подходы, которые лучше подходят для моих нужд.

Заранее благодарю!
- Johny, Дания

7
задан Johny Skovdal 23 June 2011 в 13:00
поделиться