我遇到以下情况:我正在开发一个需要将数据库操作重定向到每个客户端数据库的多租户应用程序。因此,当用户连接到应用程序时,系统使用该客户端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)
答案 0 :(得分:0)
WebSecurity类是不可能的。因为错误说你不能两次调用InitializeDatabaseConnection
方法。但是,如果您想使用SimpleMembersip Provider
,则可以编写自己的Custom Membership系统,然后添加InitializeDatabase
和ReInitializeDatabase
或ChangeDatabase
等方法。你喜欢。但正如我所说的那样WebSecurity
类是不可能的。