Я пытаюсь объединить ряд функций, что становится все труднее из-за ограничений .NET Compact Framework.
В частности, у меня есть сервис WCF, и я пишу для него клиент мобильного устройства. Подвох? Я хочу использовать какое-то сжатие данных (из-за очень медленного модема, подключенного к указанному устройству) и HTTP DIGEST-аутентификацию (которая уже существует на сайте, где размещается служба WCF).
Я следил за этой записью в блоге , чтобы получить сжатие и сгенерированный код, необходимый для клиента службы WCF.
Я, однако, борюсь с HTTP DIGEST. Я понятия не имею, как добавить эту функцию.
Раньше я не использовал сжатие и поэтому подключался к службе WCF с использованием SOAP, используя простую ссылку на WebService, и для добавления HTTP DIGEST мне пришлось переопределить метод GetWebRequest
и вручную добавить необходимые заголовки. На этот раз сгенерированные классы, похоже, дают очень мало свободы, и я мало что могу переопределить. Кроме того, кажется, что все параметры безопасности или аутентификации предназначены для SSL, а не для таких базовых схем аутентификации.
Подведем итог: как создать клиент WCF с использованием сжатия и HTTP DIGEST-аутентификации с использованием .NET Compact Framework?
EDIT:
Вот код, который я сейчас получил:
System.ServiceModel.Channels.CustomBinding customBinding = new System.ServiceModel.Channels.CustomBinding();
CompressionMessageEncodingBindingElement compressionBindingElement = new CompressionMessageEncodingBindingElement();
customBinding.Elements.Add(compressionBindingElement);
HttpTransportBindingElement httpBindingElement = new HttpTransportBindingElement();
customBinding.Elements.Add(httpBindingElement);
EndpointAddress endPoint = new EndpointAddress("http://localhost:5100/Service.svc");
ServiceClient client = new ServiceClient(customBinding, endPoint);
Я подозреваю, что мне как-то нужно добавить функцию HTTP DIGEST в класс CustomBinding
, но я не знаю как.
Я подозреваю, что должен также отметить, что, хотя я использую .NET Compact Framework 3.5, я создаю приложение Windows CE. Поэтому я не стал загружать SDK для Windows Mobile 6. Если эти SDK добавляют больше функций, которые могут использоваться в приложениях Window CE и требуются для работы HTTP DIGEST, пожалуйста, дайте мне знать.