Использование WCF для создания веб-службы RESTful, которая требует аутентификации и использует JSON в качестве формата ввода / вывода
Я хочу портировать существующую веб-службу ASP.NET на WCF, чтобы результирующая веб-служба (1) была RESTful, (2) использовала JSON в качестве формата запроса / ответа, (3) имеет собственный механизм аутентификации.
После долгих поисков, случайного кодирования и желания ударить меня головой о стену, я обнаружил, что...
webHttpBinding
должен использоваться для создания веб-службы RESTful. Но...webHttpBinding
не поддерживает HTTPS хостыwebHttpBinding
не поддерживает аутентификацию UserName.webHttpBinding
даже не поддерживает безопасность сообщений.
Поведение конечной точки с
<enableWebScript/>
должен использоваться для поддержки ASP.NET AJAX. Но...Что такое "ASP.NET" AJAX?
Что если я захочу использовать Web-сервис, используя "обычный" AJAX?
И, самое главное...
Может ли WCF делать то, что я хочу делать в первую очередь?
Если нет, то какие еще платформы я могу использовать?
2 ответа
Я написал WCF-сервис, который выполняет SOAP и REST с XML и JSON, а также пользовательскую аутентификацию. Я вставил пользовательскую аутентификацию в модуль HTTP, который выполняет базовую аутентификацию через https. См. Пользовательскую базовую аутентификацию HTTP для веб-служб ASP.NET в.NET 3.5/VS 2008 и WCF POX, JSON и SOAP сосуществуют.
В описанной вами настройке веб-сервер (т.е. IIS) будет отвечать за шифрование (HTTPS) и аутентификацию (например, базовую аутентификацию). IIS можно расширить с помощью специального механизма аутентификации (просто Google для "обработчик модуля IIS").
Немного странно, что он должен быть делегирован IIS и не является частью WCF. Но это совсем не проблема.