2014-12-24 29 views
0

我有點卡在洋蔥體系結構。洋蔥體系結構訪問目錄和應用程序數據庫

假設我正在開發一個應用程序,用戶可以註冊一個帳戶,登錄並維護他們的帳戶(例如更改電話號碼)。

然而,當他們登錄,就可以做其他的應用程序的東西(例如,創建產品,添加博客條目,發送附件等有照片的消息...)

我掙扎來定義業務邏輯和這是爲什麼。

所有應用程序服務都被保存到Postgresql數據庫中。

所有的用戶管理功能和登錄到他們的賬戶得到處理LDAP 389 Directory Server。我將使用Novell.Directory.Ldap包,因爲這將在單聲道上運行,但目前還不支持System.DirectoryServices.Protocols

應用程序數據庫和目錄服務器都有唯一的表。

我應用程序數據庫實體和LDAP目錄服務模型都放在App.Domain.Entities中嗎?

從技術上講,我有2種不同類型的數據庫與不同類型的模型。

不完全確定如何處理這一個。

我的解決方案結構:

    • App.Domain.Entities
    • 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.Services.Interfaces
  • 網絡
    • App.Web.UI(ASP.NET MVC 4剃刀)

我敢肯定,我做錯了。有人可以用某種僞示例讓我指出正確的方向嗎?例如模型去哪裏等

預先感謝您

回答

1

爲單次登錄應用程序,你可能想全部安全搬出到符合LDAP提供直接作用單獨的服務。這樣您就不會將產品特定的LDAP代碼緊密地耦合到您的Web應用程序中。然後,您的Web應用程序可以調用安全服務向其傳遞登錄到操作系統的用戶的登錄憑證。這樣,如果您需要爲用戶組或用戶授予權限,則只需從安全服務返回布爾值即可登錄用戶是否已授權。

+0

我還是有點困惑。由於單點登錄不用於登錄,他們也可以更改其詳細信息/維護帳戶。我只是不確定LDAP實體是否需要進入域,或者與LDAP進行通信的整個實現是否必須進入它自己的獨特項目。 –

+0

我的建議是將LDAP的東西放入自己的獨特項目中。 –