2011-08-04 2 views
4

Я пытаюсь создать веб-службу RESTful на основе WCF Web API. Мне также нужно контролировать доступ с помощью OAuth, и для этого я использую библиотеку с открытым исходным кодом DotNetOpenAuth.Интеграция DotNetOpenAuth и WCF WebAPI

Неужели кто-нибудь когда-либо успешно интегрировал эти два? Я изо всех сил пытаюсь преобразовать из представлений объектов HTTP веб-API WCF в то, что понятно DNOA (например, HTTP-запросы, HTTP-заголовки и т. Д.).

Любой отзыв был бы благодарен.

+0

Я предлагаю перекрестно разместить ваш вопрос на странице обсуждения [WCF WebAPI] (http://wcf.codeplex.com/discussions/topics/4885/web-api). Некоторые довольно умные и в курсе люди плавают вокруг. Будучи такой молодой (и альфа) библиотекой, она может получить дополнительную видимость в этом великом вопросе. – ckittel

+0

Выполнено: http://wcf.codeplex.com/discussions/267859 –

+0

Я предлагаю вам исправить этот парень https://twitter.com/#!/GQAdonis2008 Он работал над реализацией OAuth для веб-API WCF. –

ответ

2

Не могли бы вы быть более конкретными?

В WebAPI запрос представлен классом HttpRequestMessage. Ответ представлен классом HttpResponseMessage.

У меня нет прежних знаний о DNOA, но из того, что я видел, вы можете легко создать HttpRequestInfo из HttpRequestMessage с использованием HttpRequestInfo(string httpMethod, Uri requestUrl, string rawUrl, WebHeaderCollection headers, Stream inputStream).

Метод HTTP и запрос uri - это непосредственно HttpRequestMessage. Входной поток получается через свойство Content. Я не вижу прямого способа создания WebHeaderCollection из WebAPI's HttpRequestHeaders. Однако вы можете перебирать записи HttpRequestHeaders и вставлять затем по WebHeaderCollection по одному.

+0

Да, это именно то, что я закончил после нескольких исследований. Хорошо, что вы это подтвердили. Пометка вашего ответа как правильная для будущих читателей. –

+0

Как вы создали объект Stream из свойства Content объекта HttpRequestMessage? @PedroFelix – Daniel

+2

Мне бы хотелось увидеть пример кода для этой реализации. – Raelshark