Domain driven design DDD中是否有域安全?

Domain driven design DDD中是否有域安全?,domain-driven-design,Domain Driven Design,我读了以下问题的答案:但我对答案不满意 对方法或命令的访问很简单,您可能只需要限制角色或类似的内容。一个简化示例,其中,如果x=100,则仅对用户B有效,其中x是该命令中的一个参数。那张支票应该到哪里去?应用程序应该在执行命令之前检查参数,还是域应该知道角色等 我说清楚了吗?这是司令部的问题吗?我的意思是,安全检查在域中自然合适吗?当命令在有界上下文中具有相同的意图时,我认为相应的聚合根应该确保其在特定上下文中的有效性 您提到的场景听起来像是业务规则,而不是简单的权限检查。因此,我将在域级别进行

我读了以下问题的答案:但我对答案不满意

对方法或命令的访问很简单,您可能只需要限制角色或类似的内容。一个简化示例,其中,如果
x<100
,则该命令对角色A或角色B中的用户均有效,但如果
x>=100
,则仅对用户B有效,其中
x
是该命令中的一个参数。那张支票应该到哪里去?应用程序应该在执行命令之前检查参数,还是域应该知道角色等


我说清楚了吗?

这是司令部的问题吗?我的意思是,安全检查在域中自然合适吗?当命令在有界上下文中具有相同的意图时,我认为相应的聚合根应该确保其在特定上下文中的有效性

您提到的场景听起来像是业务规则,而不是简单的权限检查。因此,我将在域级别进行检查,作为AR的一部分

我也会在基础设施层内检查用户是否可以执行该命令,但这是为了优雅地处理拒绝。像这样的

var ar=repository.Get(id);
if (ar.CanAddMoney(User,amount)) ar.AddMoney(amount,User)
else handleForbiddenAction();
当然,对于一个模糊的问题,这是一个非常模糊的解决方案。这在很大程度上取决于领域的复杂性,我想唯一有效的答案是:“这取决于”


事实上,对于直接指向标题的anwser,DDD中的安全性表示为有效的模型

谢谢你的回答。我想没有比这更清楚的了。如果模型建模正确,这种东西可能会自然脱落。