是否可以动态更改MS-SimpleMembership数据库连接?

时间:2014-01-03 18:09:02

标签: c# sql-server asp.net-mvc-4 multi-tenant simplemembership

我遇到以下情况:我正在开发一个需要将数据库操作重定向到每个客户端数据库的多租户应用程序。因此,当用户连接到应用程序时,系统使用该客户端DB来处理其操作和操作。

我决定使用默认的MVC 4 - SimpleMemberShip提供程序来处理Membership操作,但是,我遇到的问题是“WebSecurity.InitializeDatabaseConnection方法只能被调用一次”。

因此,我陷阱为系统的所有用户使用一个单独的数据库,即使他们拥有自己的数据库并在其上创建了SimpleMemberShip表。

所以我想知道,有没有办法在每次为SimpleMemberShip重新连接WebSecutiry.Login,或者动态更改数据库连接以便它转到正确的客户端数据库以验证用户凭据?

类似的东西:

 WebSecurity. <ChangeConnection> or <ReinitConnection>
 bool result = WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)

1 个答案:

答案 0 :(得分:0)

WebSecurity类是不可能的。因为错误说你不能两次调用InitializeDatabaseConnection方法。但是,如果您想使用SimpleMembersip Provider,则可以编写自己的Custom Membership系统,然后添加InitializeDatabaseReInitializeDatabaseChangeDatabase等方法。你喜欢。但正如我所说的那样WebSecurity类是不可能的。