6

我SO搜查,便無法找到任何符合我的情景......多租戶環境 - 多會員供應商,每個租戶1 DB,單個應用程序

多租戶環境 - 多會員供應商,1每個租戶,在Azure上單個應用程序DB ...

問題很簡單:

能Asp.net成員資格提供這樣的配置?任何線索如何?

現在你們知道的問題,讓頭部的細節...

此堆棧應該在Azure上的持久性數據來看,隨着SQL Azure以及ASP.net成員,MVC4,EF5和一些吸引眼球的東西...

所面臨的挑戰在於:

  1. 創建多租戶環境中運行在Azure中的單個應用程序(工作者角色和Web角色,而不是租戶專用或定向) ;

  2. 一對一隔離數據庫(每個租戶一個數據庫);

  3. 一個Asp.net Membership在每個數據庫中運行,以驗證和授權每個租戶創建的用戶;

  4. 一個主要的數據庫,持有共享數據和主Asp.net成員,其中只有管理員用戶(主站點管理員和租戶管理員)登錄...

重要的是說,所有的數據庫都完全一樣的結構,除了主...

不知道是否有幫助,但棧還包括MVC4,EF5(DB First approach);實際上,我正在考慮使用MVC路由機制來收集租戶標識,然後設置一個特定的Db上下文,其中應該應用所有操作;

任何想法?

+0

爲了添加一點額外的細節...發現[this](http://stackoverflow.com/questions/10466542/asp-net-membership-model-for-multiple-company-accounts-each -with-multiple-users)線程才發佈我的。我一點也不習慣在單個asp.net會員提供者中實現n個租戶,不管...對骨骼冒險... –

+0

供將來參考...只是喜歡[this](http:// stackoverflow .com/questions/6707529/get-specific-membership-provider)線程。不完美,但它更接近解決方案。真正的問題是,它需要您將每個新租戶都設置爲web.config文件。哦,如果這樣的設置可以從數據源動態彈出...想法? –

回答

0

默認情況下,asp.net成員資格不適用於多租戶環境,因爲它不支持用於標識給定用戶的成員資格和角色詳細信息的承租人標識的概念。您可以選擇使用自定義成員資格提供程序或使用聯合或SSO,並將applicatoin角色映射到用戶在使用該應用程序時引入的SSO角色映射。

0

您應該能夠在運行時配置ASP.NET成員資格數據庫連接字符串。 This thread有幾個選項,包括自定義成員資格提供程序或通過Global.asax.cs在請求生命週期的早期更改值。