代码之家  ›  专栏  ›  技术社区  ›  Bryan Batchelder

在紧凑的框架上使用和保护wcf的最佳方法?

  •  5
  • Bryan Batchelder  · 技术社区  · 17 年前

    我正在开发一个有几个客户端的应用程序-桌面、移动设备、门户网站。我们将转向一种soa架构,并将使用wcf。

    当在桌面和门户网站端使用nettcp+传输/消息安全+windows身份验证(甚至是usernametoken和自定义usernamevalidator提供程序)时,wcf的故事非常棒。

    它完全崩溃的地方是在紧凑的框架方面……它所支持的wcf的子集非常有限。我只是简单地在SSL的头上使用BaseCHTTP+用户名/密码,但是,似乎在压缩框架堆栈(没有operationContextScope)上无法添加头,所以我只能将用户名/密码作为服务中每个操作方法的参数。

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   Justin Niessner    17 年前

    您最好的选择是公开符合ws-security标准的wcf端点。

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

    Messaging in the .NET Compact Framework

        2
  •  1
  •   Chris Brandsma    17 年前

    另一种解决方案是传递票证(read:guid)。

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

    当然,所有这些都是假设您不只是想利用会话状态。

    但换言之:我遇到了和你一样的问题。它很烂。我就是这样绕过它的,所以它是有用的。

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

    推荐文章