基本上,我需要允许两个用户拥有相同的用户名,虽然它在租户中必须是独一无二的,但我也想利用Twitter,微软,Facebook和Google等外部登录。
从我可以看出,框架并不是以多租户的方式设计,尽管它似乎允许可扩展性。我更愿意尽可能利用现有的组件,尽管目前我认为我将不得不放弃Entity Framework的实现,并且自己编写代码。
有没有人尝试过这个,他们有多少需要自己编码。
解决方法
https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant
支持多租户所需的可扩展性不可能在1.0.0版本的Microsoft.AspNet.Identity.EntityFramework(至少没有大量的自定义工作)的情况下可用,但是现在可以通过Nightly ASP.NET Web Stack NuGet Packages提供的1.1 alpha版本。
我决定发布我所生产的NuGet软件包AspNet.Identity.EntityFramework.Multitenant,据说它目前需要Nightly ASP.NET Web Stack NuGet Packages。
我提供了两个简单的网站,使用该包来允许多租户:
> Vanilla Implementation这是使用字符串主键的标准MVC5模板项目。
>提供多租户所需的变更已被隔离到commit。
> Integer Primary Key Implementation,它使得更多的定制使用整数主键
>提供多租户所需的变更已被隔离到commit。
我计划更新解决方案,因为1.1版本的ASP.NET Identity被发布。
我希望其他人能够在我发布的nuget包中找到一些用途,任何反馈都不欢迎,请raise any issues you find。
更新
该解决方案现已更新为使用2.0版本的Microsoft.AspNet.Identity.EntityFramework。