2011-08-18 64 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密钥。我有一个工作的例子,但必须建立自己的会员供应商,这让我几乎回到了你的建议。谢谢! 〜史蒂夫 –