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

我正在开发一个多租户解决方案,我想使用最新的 ASP.NET Identity框架,专门针对 Entity Framework实施。

基本上,我需要允许两个用户拥有相同的用户名,虽然它在租户中必须是独一无二的,但我也想利用Twitter,微软,Facebook和Google等外部登录

从我可以看出,框架并不是以多租户的方式设计,尽管它似乎允许可扩展性。我更愿意尽可能利用现有的组件,尽管目前我认为我将不得不放弃Entity Framework的实现,并且自己编写代码

有没有人尝试过这个,他们有多少需要自己编码。

解决方法

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

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

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...