【问题标题】:Location of password functionalitly in DDDDDD 中密码功能的位置
【发布时间】:2010-12-06 19:37:27
【问题描述】:

我正在使用 MVC 2、EF 4、使用存储库模式和 poco 构建应用程序。我想为客户建立一个登录页面。功能应该在哪里执行检查密码策略、有效性和所有其他与登录相关的事情。这会存在于 POCO 生成的客户实体中,我应该创建一个单独的登录类还是其他什么?

谢谢

学习

【问题讨论】:

    标签: asp.net-mvc entity-framework-4 domain-driven-design poco


    【解决方案1】:

    在 DDD 下,该功能可以作为服务实现,因为客户不负责验证自己的身份。

    您可以阅读 Service here 的定义。

    【讨论】:

    • 所以与其把这个功能放在领域层,你是说把它放在一个单独的服务层会更好?
    • 不,不是服务层,是域服务(在 DDD 的上下文中)。它是一种表示处理实体之间操作的方式的方式,这不是任何这些实体的专属职责。更多关于这个here.
    • +1 - 我同意。这是与身份验证相关的 - 它不是域的一部分,它是域作为 Web 应用程序呈现的一部分。应该是域服务。
    • @CGK - 后续问题,如果身份验证是作为域服务实现的,那么这是否意味着该服务需要访问存储库才能访问数据,或者是否可以拥有不需要通过存储库的域服务访问基础架构,例如数据库?
    • 如果您严格应用 DDD,我认为您应该使用存储库来访问数据。这样一来,您就可以避免出现前后不一致的情况。
    【解决方案2】:

    Check这个链接,有几点可能对你有帮助。

      "Where should the functionality live that does things like checks password policy,
     validity and all other things login related. Would this live inside the POCO generated 
     Customer Entity, should I create a seperate login class, or something else?"
    

    为密码和用户创建单独的模型,将它们传递给域服务并让客户存储库处理其他任务。

    还有你referredSharp Architecture。这是建立在 MVC+DDD+NH+POCO 之上的。这将为您简要介绍您正在寻找的内容。

    【讨论】:

    • Strewth,这一切看起来都相当压倒性。以您对 Sharp Architecture 的了解,关于我的登录问题,我有什么特别需要注意的吗?
    猜你喜欢
    • 2019-06-04
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 2013-09-12
    • 2020-07-05
    • 1970-01-01
    • 2013-09-14
    • 2013-04-08
    相关资源
    最近更新 更多