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

2024-01-08

我正在开发多租户解决方案,我想使用最新的ASP.NET 身份 http://www.asp.net/identity框架特别是实体框架 http://www.nuget.org/packages/Microsoft.AspNet.Identity.EntityFramework/执行。

基本上,我需要允许两个用户拥有相同的用户名,尽管它在租户内必须是唯一的,但我还想使用外部登录,例如 Twitter、Microsoft、Facebook 和 Google。

据我所知,该框架在设计时并未考虑到多租户,尽管它似乎确实允许可扩展性。我更愿意尽可能多地利用现有组件,尽管目前我认为我将不得不放弃实体框架 http://www.nuget.org/packages/Microsoft.AspNet.Identity.EntityFramework/实现,并自己编写代码。

有其他人尝试过这个吗?他们需要自己编写多少代码。


我现在已经有了一个可行的解决方案,并在 GitHub 存储库中共享:

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

1.0.0 版本无法实现支持多租户所需的可扩展性Microsoft.AspNet.Identity.EntityFramework https://www.nuget.org/packages/Microsoft.AspNet.Identity.EntityFramework/1.0.0(至少不是没有大量的定制工作),但可以通过当前可用的 1.1 alpha 版本获得每晚 ASP.NET Web 堆栈 NuGet 包 http://blogs.msdn.com/b/henrikn/archive/2012/04/29/using-nightly-nuget-packages-with-asp-net-web-stack.aspx.

我决定将我制作的内容作为 NuGet 包发布AspNet.Identity.EntityFramework.Multitenant https://www.nuget.org/packages/AspNet.Identity.EntityFramework.Multitenant/,如前所述,目前需要每晚 ASP.NET Web 堆栈 NuGet 包 http://blogs.msdn.com/b/henrikn/archive/2012/04/29/using-nightly-nuget-packages-with-asp-net-web-stack.aspx.

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

  1. Vanilla Implementation https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant/tree/master/src/Examples/VanillaImplementation which is the standard MVC5 template project that uses a string primary keys.
    • 提供多租户所需的更改已与此隔离commit https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant/commit/2360ea55ac89195c645e130927835f4a4bea3e58.
  2. Integer Primary Key Implementation https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant/tree/master/src/Examples/IntegerPkImplementation which is making a few more customisations to use integer primary keys
    • 提供多租户所需的更改已与此隔离commit https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant/commit/9d853306d5d5e25750f6875da15afe9f5ead73f6.

我计划在 ASP.NET Identity 1.1 版本发布时更新该解决方案。

我希望其他人在我发布的 nuget 包中找到一些用处,非常欢迎任何反馈提出您发现的任何问题 https://github.com/JSkimming/AspNet.Identity.EntityFramework.Multitenant/issues.


Update

该解决方案现已更新为使用 2.0 版本Microsoft.AspNet.Identity.EntityFramework https://www.nuget.org/packages/Microsoft.AspNet.Identity.EntityFramework/2.0.0.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ASP.NET Identity 实现多租户用户登录 的相关文章

随机推荐