在将数据发送给订户之前过滤数据(NServiceBus)

时间:2011-05-29 13:24:41

标签: c# .net soa nservicebus servicebus

我有许多客户需要在将新数据添加到我们的某个数据库表时收到通知。 我考虑创建一个每隔X秒检查一次表的服务,并通知客户端是否存在任何新数据。问题是,每个客户端具有不同的权限,不允许查看所有信息。我想过使用类似NServiceBus的东西来发布带有新信息的消息,但我需要在发送之前根据每个客户端的权限过滤信息。过滤需要在发送信息之前完成(我不允许在客户端执行过滤)。

NServiceBus中是否内置了对此的支持?

如果没有,我如何实现这一目标?

修改 以下是我在下面评论中写的一个例子: 说我有一个图书馆。每个客户都有兴趣接收有关添加到库中的新书的立即通知,但只允许每个客户通知某个类型。系统应向包含新书信息的所有客户发送通知,但每个客户应仅被告知其特定类型。出于安全原因,我无法过滤客户端中的数据。

感谢。

1 个答案:

答案 0 :(得分:2)

一个潜在的选择是只允许某些客户订阅他们可以看到的类型。 NSB提供IAuthorizeSubscriptions接口,允许您确定允许谁订阅消息。通过按流派分割消息,您可以使用授权界面允许/拒绝订阅这些类型。