在多租户(每个客户端单独的数据库)模型中是否可以使用 Microsoft MembershipProvider 或 SimpleMembership 提供程序?
原始成员资格提供程序是从 web.config 配置的,Simplemembershipprovider(在 MVC4 模板中)有一个方法,该方法在每次应用程序启动而不是每次会话或请求时初始化数据库。
因此,会员资格/简单会员资格提供者是否与应用程序相关联,或者原则上,将数据库连接更改为指向每个请求的请求客户端数据库是否明智?
在多租户(每个客户端单独的数据库)模型中是否可以使用 Microsoft MembershipProvider 或 SimpleMembership 提供程序?
原始成员资格提供程序是从 web.config 配置的,Simplemembershipprovider(在 MVC4 模板中)有一个方法,该方法在每次应用程序启动而不是每次会话或请求时初始化数据库。
因此,会员资格/简单会员资格提供者是否与应用程序相关联,或者原则上,将数据库连接更改为指向每个请求的请求客户端数据库是否明智?
我的自定义会员提供程序是可能的:
http://blog.gauffin.org/2011/09/a-more-structured-membershipprovider/
IAccountRepository
在 SqlServer 包中的一个之上创建您的自定义。比实现自己的提供者要容易得多。
我已经看到并实现了一些非常相似的东西,基于 ASP.NET 中的代码:支持动态应用程序。
这与您所要求的不同 - 这里的目标是使用相同的成员数据库,但每个客户端使用不同的应用程序名称。
我不确定如何动态设置连接字符串 -SqlMembershipProvider
不公开该属性。您可能从 开始Initialize
,但正如您所说,它不会在每个请求上运行。还可以选择创建自己的提供者,并为SqlMembershipProvider
每个请求创建一个内部。
我们确定我们需要使用依赖注入来为每个租户请求添加自定义成员资格提供程序。通过彻底的调查,很明显我们无法修改会员提供者的连接,并确保在完成请求之前它没有被另一个请求修改。由于其单例设计。
干杯蒂姆