【发布时间】:2011-09-15 08:41:36
【问题描述】:
我正在尝试将多个功能组合在一起,但由于 .NET Compact Framework 的限制,这变得越来越困难。
具体来说,我有一个 WCF 服务,我正在为它编写一个移动设备客户端。捕获?我想使用某种数据压缩(由于连接到所述设备的调制解调器非常慢)和 HTTP DIGEST 身份验证(已在托管 WCF 服务的站点上实施)。
我已关注this blog entry 以获取 WCF 服务客户端所需的压缩和生成代码。
然而,我正在为 HTTP DIGEST 苦苦挣扎。我不知道如何添加此功能。
以前我没有使用压缩,因此我使用 SOAP 连接到 WCF 服务,使用简单的 WebService 引用,并添加 HTTP DIGEST 我必须覆盖 GetWebRequest 方法并手动添加所需的标头。这一次,生成的类似乎没有多少余地,我没有太多可以覆盖的地方。此外,所有安全或身份验证参数似乎都是为 SSL 设计的,而不是此类基本身份验证方案。
总结一下:如何使用 .NET Compact Framework 使用压缩和 HTTP DIGEST 身份验证创建 WCF 客户端?
编辑: 这是我目前得到的代码:
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 应用程序。因此,我没有费心去下载 Windows Mobile 6 SDK。如果这些 SDK 添加了更多可在 Window CE 应用程序中使用的功能,并且是 HTTP DIGEST 工作所必需的,请告诉我。
【问题讨论】:
-
如果我对类似问题的回答对您有帮助,请告诉我。 stackoverflow.com/a/28998391/892836
-
@ToniRossmann 很久以前我们做那个项目的时候,我已经发布了我们使用的解决方案。也就是说,您的回答似乎忘记了我们需要启用压缩。我们的应用程序正在使用摘要,基础设施正在解决这个问题。我想您的代码可以重写以相当容易地使用 Digest(因为我们已经不得不手动完成),但我不确定这将如何组合在一起,我也无法真正检查我们的原始应用程序已经发展并且不再使用任何 Compact Framework 元素。
标签: c# wcf compact-framework windows-ce