在Compact Framework上使用和保护WCF的最佳方法是什么?

时间:2009-07-23 14:00:02

标签: wcf compact-framework

我正在开发一个拥有多个客户端的应用程序 - 桌面,移动设备,Web门户。我们正在转向SOA类型的架构,并将使用WCF。

在桌面和Web门户端使用netTcp +传输/消息安全性+ Windows身份验证(甚至UsernameToken和自定义UsernameValidator提供程序)时,WCF的故事非常棒。

它完全崩溃的地方是在紧凑的框架方面...它支持的WCF的子集是如此限制。我只是在整个SSL的标题中使用basicHttp +用户名/密码而辞职,但似乎你不能在紧凑的框架堆栈上添加标题(没有OperationContextScope) - 这样我就可以使用包含用户名/密码作为EVERY的参数了服务中的单一操作方法。

请告诉我我错了,有更好的方法。

2 个答案:

答案 0 :(得分:1)

最好的办法是公开符合WS-Security标准的WCF端点。

然后,您应该能够将这些标准用于基于消息的安全性(最有可能使用X.509)。这是开始使用的MSDN链接:

Messaging in the .NET Compact Framework

答案 1 :(得分:1)

另一种解决方案是传票(读:guid)。

客户端登录(发送用户名和密码)。生成随机生成的票证(再次引导),缓存在服务器上,并发送回客户端。然后来回传递此票证,而不是用户名和密码。

当然,所有这一切都假设您不仅仅想利用会话状态。

但换句话说:我遇到了同样的问题。太糟糕了。这就是我如何绕过它以便它可以使用。

无论如何,另一个很好的参考是WCF Guidance for Mobile