2011-08-18 59 views
0

我有一個多租戶應用程序,其中每個租戶都會有自己的數據庫。 ASP.NET MVC3 Web應用程序將查看傳入的用戶名,並確定要使用哪個客戶數據庫對用戶進行身份驗證。ASP.NET會員供應商 - 避免安裝在web.config中

我可以得到這個工作,如果我添加多個connectionStrings /成員提供者,我可以得到它的工作。

我想一個方法,以消除在web.config中的依賴。

有沒有一種方法可以通過代碼配置SqlMembershipProviders,而不是將自己綁定到web.config文件?我想我可以用我寫的一個自定義提供程序來完成它,但是想在走向這條路之前看看是否有辦法。

回答

0

我已經變得不那麼習慣使用ASP.NET成員資格提供程序來處理用其他方式處理用戶數據的MVC項目。相反,我使用表單身份驗證並將密碼哈希和鹽作爲列合併到我的用戶數據庫中(類似於模式),然後手動設置表單身份驗證Cookie。

這實際上與默認的MVC項目腳手架設置的內容沒有什麼不同。我只是不喜歡將我的用戶記錄與ASP.NET成員資格記錄關聯起來,並且我沒有使用關聯的配置文件或角色功能。

如果你走這條路線,那麼你可以選擇如何處理多租戶的場景,但是我真的懷疑你能夠(或者想要爲此)擺脫網絡.config完全。

對於一些多租戶的想法,看看我的答案在這太問題:SaaS: one web app to one database VS. many web apps to many databases

+0

喬希,感謝您的想法。我想不依賴於web.config配置,因爲我希望能夠輕鬆擴展這個應用程序。如果我的所有配置都在數據庫中,那麼我不必爲每個節點遞交一個web.config密鑰。我有一個工作的例子,但必須建立自己的會員供應商,這讓我幾乎回到了你的建議。謝謝! 〜史蒂夫 –