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

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

我遇到以下情况:我正在开发一个需要将数据库操作重定向到每个客户端数据库的 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系统,然后你可以添加方法,如 InitializeDatabaseReInitializeDatabaseChangeDatabase 等,但是你喜欢。但正如我所说,不幸的是,这是不可能的WebSecurity 类。

关于c# - 是否可以动态更改 MS - SimpleMembership 数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910051/

相关文章:

条件基于列值的 WHERE 子句中的 SQL If-Else

c# - DropDownListFor Inside EditorFor 不选择值

c# - 如果字段为空或错误,则日期时间的 RequiredAttribute

c# - 如何匹配%19这样的字符?

c# - AutoMapper 从子级获取属性

c# - 如何比较两个对象 - 在比较中排除特定属性

javascript - MVC4如何在javascript中将值传递给Html.Partial?

c# - 为什么此代码会抛出 InvalidOperationException?

sql-server - SQL Server 2012 - 如何根据其他列更新具有分组运行编号的列?

java - 启用 SQL 触发器时,Java 中的准备语句失败