我的问题是使用 RavenDb 和授权包保护跨服务的文档:
我有一个“帐户”服务,负责管理所有“用户”。
我有一个“消息”服务,它负责所有“消息”,即墙帖、对话等。
为了跟踪谁在此服务中做了什么,当发布一条新消息时,我创建了消息和两个 UserProxy 对象(减少只有 UserId 和 UserName 属性的用户对象 - 这些作为子对象存储在 WallPost 文档中,因此它们不是t 文件本身)
当用户向另一个用户墙发布内容时,我只想允许:
- 删除/编辑原始海报、收件人和管理员
- 查看原始发帖人、收件人、管理员和收件人的所有朋友
我还有一个负责图像/视频的媒体服务,一个用于所有音乐事件的 MusicEvent 服务——它们都需要有类似的设置。
我的问题是这样的:
*帐户服务是否应该存储具有角色和权限的主用户 - 当它被要求提供用户时,它可以发送回具有角色和权限的 dto(可能会变得笨拙)
*消息服务是否应该维护它自己的用户副本 - 具有自己的角色和权限集?
第一个更简单,因为它是集中式的 - 但对我来说看起来有点狡猾关心更新 - 但这听起来很复杂。
FTR - 我倾向于选项 2 - 非集中式方法。