2009-08-24 114 views
5

我應該從控制器訪問asp.net成員類和結果傳遞給服務層,或者直接從業務層訪問它?呼叫asp.net Membership類?

因爲一方面這看起來像業務邏輯,應該在服務層中處理,但我不想將服務層綁定到Web命名空間,因爲這可能會成爲一個Windows應用程序向下路。

回答

6

答案,可以使用國際奧委會創建服務層採用的是會員接口。該網站的實施可以使用網絡名稱空間。而Windows應用程序可以有不同的實現。並且由於您可以注入該依賴項,因此您的服務層不必更改:-)

+0

這將是我的下一個攻擊計劃,謝謝你的驗證。 – 2009-08-25 00:53:12

0

是否真的使用的System.Web一個問題嗎?這是不超過其直接連接到System.Configuration,或System.IO不同。任何應用程序都可以使用它,無論它是否「脫機」。

我經常配合我的web應用程序到更經典的,雖然作爲「的WinForms」組件組件,以訪問有用的集合對象和等。

+0

我的想法是,如果我改變爲winforms,它會更正確,不會依賴於不相關的程序集。承認它有點微不足道。 – 2009-08-25 00:52:35

3

ASP.NET成員身份是Web特定的,因此應該在Controller中進行訪問。 MHO是服務層不應該硬連線到網絡上。因此,要添加/刪除用戶,請通過Controller執行此操作。

OTOH,在服務層中,您可以讀取Thread.CurrentPrincipal.Identity,這是非特定於Web的,但恰好與ASP.NET成員完全兼容。所以,如果你只需要獲得當前用戶,你就可以做到這一點,而不用擔心分離問題。