0

我有点卡在洋葱架构上。

假设我正在开发一个应用程序,用户可以在其中注册帐户、登录并维护他们的帐户(例如更改电话号码)。

然而,当他们登录时,他们可以做其他应用程序的事情(例如创建产品、添加博客条目、发送带有照片的消息等......)

我正在努力定义业务逻辑,这就是原因。

所有应用程序服务都保存到Postgresql数据库中。

所有用户管理功能和登录到他们的帐户都由LDAP 389 Directory Server. 我将使用该Novell.Directory.Ldap软件包,因为它将在单声道上运行并且尚不支持System.DirectoryServices.Protocols

应用程序数据库和目录服务器都有唯一的表。

我是否将应用程序数据库实体和 LDAP 目录服务模型都放在 App.Domain.Entities 中?

从技术上讲,我有 2 种不同类型的数据库和不同类型的模型。

不完全确定如何处理这个问题。

我的解决方案结构:

  • 领域
    • 应用程序域实体
    • App.Domain.Interfaces
  • 基础设施
    • App.Infrastructure.Data (FluentNHibernate)
    • App.Infrastructure.DependecyResulution (SimpleInjector)
    • App.Infrastructure.Interfaces
    • App.Infrastructure.Logging (NLog)
    • App.Infrastructure.LDAP (Novel.Directory.Ldap)
  • 服务
    • 应用程序服务接口
  • 网络
    • App.Web.UI(ASP.NET MVC 4 剃刀)

我很确定我做错了。有人可以用某种伪示例指出我正确的方向吗?例如模型去哪里等。

先感谢您

4

1 回答 1

1

对于单点登录应用程序,您可能希望将所有安全性移出到一个单独的服务中,该服务直接与您的 LDAP 提供程序一起工作。这样,您就不会将特定于产品的 LDAP 代码紧密耦合到您的 Web 应用程序中。然后,您的 Web 应用程序可以调用安全服务,将登录到操作系统的用户的登录凭据传递给它。这样,如果您需要向用户组或用户组授予权限,您可以从安全服务返回一个布尔值,说明该登录用户是否已获得授权。

于 2014-12-30T22:49:33.500 回答