代码之家  ›  专栏  ›  技术社区  ›  kitsune

在域驱动设计的上下文中,我在哪里可以找到有关身份验证和授权的信息?

  •  2
  • kitsune  · 技术社区  · 16 年前

    我试图用DDD(领域驱动设计)的方式来做事情。男孩,我挣扎着。在我读过的所有书中,认证都是无关紧要的,也没有提到!

    我已经编写了自己的身份验证和会员服务,负责注册和登录用户,创建附加密码等。我不使用.NET的会员资格提供商,而是依赖表单身份验证。

    我已经实现了一个用户模型,其中包含用户名、电子邮件、密码哈希、ApprovalStatus等。

    现在我想域模型的其余部分不应该关心用户。我有一个类Person,用于对人员及其关联数据进行建模。因此,它可以用于对用户和非用户的个人数据进行建模。Company类型的对象与个人而不是用户一起工作。一项活动被分配给一个人,而不是一个用户。

    1 回复  |  直到 16 年前
        1
  •  2
  •   datacop    16 年前

    从您所介绍的内容来看,您有两个已知的事实:

    1. 不是每个人都是用户

    在这种情况下,我将扩展person模型,以包括一个可为空的UserId字段,这样您就可以将用户与同样是用户的那些人的person关联起来。

    我将重载(或创建一个不同的)fetch方法,以便也从用户检索person对象(可以是id,也可以是foll User对象)。

    public IPerson Fetch(IUser user) {}
    

    当然,既然大家都知道每个用户也是一个人,我个人认为将用户对象扩展为包括个人财产并没有什么坏处。。。

    public interface IUser 
    {
       ...
       IPerson Person { get; set; }
    }