multi-tenant - 如何使用 ASP.NET Identity 实现 Multi-Tenancy 用户登录

标签 multi-tenant entity-framework-6 asp.net-identity

我正在开发一个 Multi-Tenancy 解决方案,我想使用最新的 ASP.NET Identity框架特别是Entity Framework执行。

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

据我所知,该框架在设计时并未考虑 Multi-Tenancy ,尽管它似乎允许可扩展性。我更愿意使用尽可能多的现有组件,但目前我认为我将不得不放弃 Entity Framework实现,并自己编写代码。

有没有其他人尝试过这个,他们必须自己编码多少。

最佳答案

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

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

支持 Multi-Tenancy 所需的可扩展性在 Microsoft.AspNet.Identity.EntityFramework 的 1.0.0 版本中是不可能的。 (至少不是没有大量定制工作),但可以通过 Nightly ASP.NET Web Stack NuGet Packages 在当前可用的 1.1 alpha 版本中获得。 .

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

我提供了两个简单的站点,它们使用该包来允许 Multi-Tenancy :

  • Vanilla Implementation这是使用字符串主键的标准 MVC5 模板项目。
  • 提供 Multi-Tenancy 所需的更改已与此隔离 commit .
  • Integer Primary Key Implementation这是进行更多自定义以使用整数主键
  • 提供 Multi-Tenancy 所需的更改已与此隔离 commit .

  • 我计划随着 ASP.NET Identity 1.1 版本的发布更新该解决方案。

    我希望其他人在我发布的 nuget 包中找到一些用处,非常欢迎任何反馈,请raise any issues you find .

    更新

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

    关于multi-tenant - 如何使用 ASP.NET Identity 实现 Multi-Tenancy 用户登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20037145/

    相关文章:

    ASP.NET 身份定制和 ADO.NET

    java - RequestContextHolder.getRequestAttributes() null - Spring Security + Multi-Tenancy

    ruby-on-rails - 带公寓的 Rails 5 - ArgumentError : prepare called on a closed database: rollback transaction

    asp.net - 如何在 Asp.Net Mvc 中做 Basecamp 风格的账户?

    asp.net - 在 ASP.NET 中跨网站共享页面

    sql-server - 为什么使用 Entity Framework 创建 MSSQL(Express) 数据库这么慢?

    json - 如何在 web api 中发布多个 json 对象?

    passwords - 如何以管理方式为忘记密码的 ASP.net Identity 用户设置新密码?

    c# - Entity Framework (数据库优先)的存储过程返回结果不正确

    asp.net - 如何更改 asp.net identity 3 (vnext) 使用的表名?