如何使用ASP.NET标识实现多租户用户登录

Jam*_*ing 25 multi-tenant entity-framework-6 asp.net-identity

我正在开发一个多租户解决方案,我想使用最新的ASP.NET Identity框架,特别是Entity Framework实现.

基本上我需要允许两个用户拥有相同的用户名,虽然它必须在租户中是唯一的,我也想利用外部登录,如Twitter,微软,Facebook和谷歌.

据我所知,该框架并未考虑多租户设计,尽管它似乎确实允许可扩展性.我宁愿尽可能多地使用现有组件,但目前我认为我将不得不放弃实体框架实现,并自己编写代码.

有没有其他人试过这个,他们有多少自己编码.

Jam*_*ing 27

我现在有了一个我在GitHub存储库中共享的工作解决方案:

https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant

1.0.0版本的Microsoft.AspNet.Identity.EntityFramework(至少没有很多自定义工作)不支持多租户所需的可扩展性,但是目前可通过Nightly获得的1.1 alpha版本中提供了这种可扩展性.ASP.NET Web Stack NuGet包.

我决定发布我作为NuGet包AspNet.Identity.EntityFramework.Multitenant生成的内容,如上所述它目前需要Nightly ASP.NET Web Stack NuGet包.

我提供了两个简单的网站,使用包来允许多租户:

  1. Vanilla Implementation,它是使用字符串主键的标准MVC5模板项目.
  2. 整数主键实现,它使用更多的自定义来使用整数主键

我计划在发布1.1版本的ASP.NET身份时更新解决方案.

我希望其他人在我发布的nuget包中找到一些用处,任何反馈都非常欢迎,请提出你发现的任何问题.


更新

该解决方案现已更新为使用Microsoft.AspNet.Identity.EntityFramework的2.0版本.