允许服务访问特定客户端版本

时间:2012-07-06 13:59:24

标签: .net wcf n-tier-architecture wcf-extensions

我正在寻找以下场景的一些架构构思:

环境: 我有一个服务(在Windows服务中托管的wcf),它具有多种功能。我提供客户端库(.NET windows dlls),它提供API来访问此服务,还具有其他客户端功能。

问题: 出于商业原因,我需要寻找一种服务机制,只允许一个 客户端的特定版本,用于访问某些功能(访问某些API),不允许访问其他版本的客户端。基本上,我希望教育服务信任来自1个特定客户端版本的所有请求,并通过任何其他版本的客户端支持基本操作。

请注意:不能添加任何用户权限或用户安全上下文,因为我只想允许或拒绝特定版本的软件客户端访问,而与用户没有任何关系。

例如:从版本X客户端,我需要允许所有READ和SAVE功能。但是从任何其他版本,我只允许所有READ,但不允许任何SAVE。

可能的解决方案: 到目前为止,我已经考虑过向客户端添加一个带有版本号的配置,并将其传递给客户端的所有服务请求。该服务可以从DB或Web配置中了解完全信任的版本。在服务中,我可以拦截通道,看看我是否有来自客户端消息的特定字符串,因此支持\ deny访问特定的API。

对于这种情况的任何其他优雅的灵魂,或者如果任何人做了任何相关的事情,这也会有所帮助。

由于

1 个答案:

答案 0 :(得分:0)

您可以为客户端提供散列,当与服务请求一起提供时,会根据客户端提供的散列授予客户端访问权限吗?

就像你提到的那样,有许多方法可以给猫皮肤。

请问为什么要让您的服务/客户端系统以这种方式运行?