标签: c# domain-driven-design subdomain bounded-contexts
我应该将我的身份访问权限(身份验证和授权)放在共享内核中,还是创建一个单独的有界上下文,例如: - IdentityAccess
请记住,身份访问将包含许多功能,如用户登录和权限管理,如(创建用户,规则和组)
答案 0 :(得分:1)
身份访问不应包含权限管理;这些是属于单独背景的商业功能,请参阅Martin Fowler的这张图片:
在您的情况下,不是客户和产品,而是存在于两个有界上下文中的权限/角色/用户等。
所以你应该:
然后,您需要以这样一种方式组织代码:用户交互总是经过(1)但是以对(2)和任何数量的(3)不透明的方式。
具体来说,您不应该担心业务环境中的权限,因为如果用户没有适当的权限,它永远不应该是可调用的。