在 DDD 中公开 ASP.NET 身份服务

Exposing ASP.NET Identity Services in DDD

我们正在开发使用 ASP.NET MVC、C# 和 EF6 开发的基于 DDD 的应用程序。已决定使用 ASP.NET 身份服务实施身份验证和授权...我对此有一些疑问;

任何人都可以指导我实现一个好的示例实施吗?

  1. 我会说它是应用层,虽然这是有争议的,但它有什么区别呢?不要进入 Architecture Austronancy 就去做。 Auth 可以是域的一部分("Only Users with Update permissions can change product details",等等),但它可以是无关紧要的。

  2. 是的,您可以创建一个单独的 DbContext,但您不必这样做。我们曾经将所有内容都放在一个庞大的上下文中,但事实证明这太多了而且难以处理,我们现在将 DbContext 拆分成多个片段,包括 Identity DbContext。

我猜想用户管理是一个不同的限界上下文,并且在所有其他限界上下文中由某些框架使用身份验证和授权机制将是基础架构的责任。

当然你应该有一个应用程序服务接口来验证用户,然后再驱动一些域逻辑。 该接口实现将在基础设施中(ASP.NET 身份服务)