2013-01-19 28 views
0

我對MVC沒有太多的經驗,並且正在查看大量身份驗證示例,這些示例不符合我的需要。對於多個系統的MVC表單身份驗證

我需要提供從一個MVC應用程序訪問多個系統。每個系統管理它自己的認證並提供類似的數據(即系統X和系統Y都提供了一個小部件列表)。此外,用戶可以登錄System X和System Y,並且能夠從一個或另一箇中查看小部件,而無需重新提示輸入憑據。我的計劃是使用一個簡單的路線{controller}/{action}/{systemName}(即Widgets/Index/SystemX)。細節很模糊,但我想我需要一個自定義的AuthorizeAttribute和一個SessionProvider。 SessionProvider會處理登錄到一個System,它返回一個sessionID。當我查詢來自每個系統的數據時使用此sessionID。最模糊的細節之一是爲會話中的每個系統存儲用戶信息(SystemName,user,sessionId)的最佳方式。 SessionState的?餅乾?的FormsAuthenticationTicket?還有別的嗎?

我很想利用ASP.NET & MVC中的已有內容,但我不需要爲用戶提供數據庫。

歡迎任何批評或建議。

回答

1

如果SystemX和SystemY是同一應用程序的不同區域,那麼最好使用ASP.NET MVC的Areas功能。這使您可以劃分應用到的區域,這在邏輯上相關的控制器,視圖,模型組等

每個區域都可以有它自己的web.config文件和身份驗證方法(例如ASP.Net MVC 3 Areas and Mixed Mode Authentication),所以這可能幫助。


如果SystemX和SYSTEMY基本上是相同的窗口小部件列表的功能,只是針對不同的客戶,你可能想看看multi-tenancy in ASP.NET MVC

+0

謝謝,但區域將無法正常工作,因爲我想使用單個控制器返回SystemX和SystemY的窗口小部件列表。多租戶是不需要的,因爲應用程序不需要爲客戶定製。 – Jayson