我遇到以下情况:我正在开发一个需要将数据库操作重定向到每个客户端数据库的 Multi-Tenancy 应用程序。因此,当用户连接到应用程序时,系统会使用该客户端数据库来处理他的 Action 和操作。
我决定使用默认的 MVC 4 - SimpleMemberShip 提供程序来处理成员资格操作,但是,我面临着“WebSecurity.InitializeDatabaseConnection 方法只能调用一次”的问题。
因此,我陷入了为系统的所有用户使用一个单一的数据库,即使他们有自己的数据库并在其上创建了 SimpleMemberShip 表。
所以我想知道,是否有办法为 SimpleMemberShip 每次重新连接 WebSecutiry.Login,或者动态更改数据库连接,以便它转到正确的客户端数据库以验证用户凭据?
类似于:
WebSecurity. <ChangeConnection> or <ReinitConnection>
bool result = WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)
最佳答案
WebSecurity 是不可能的类。如错误所述,您不能两次调用 InitializeDatabaseConnection
方法。但是如果你想使用 SimpleMembersip Provider
你可以自己写 Custom Membership系统,然后你可以添加方法,如 InitializeDatabase
和 ReInitializeDatabase
或 ChangeDatabase
等,但是你喜欢。但正如我所说,不幸的是,这是不可能的WebSecurity
类。
关于c# - 是否可以动态更改 MS - SimpleMembership 数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910051/