Warm tip: This article is reproduced from serverfault.com, please click

authentication-多租户ASP.NET核心

(authentication - Multi tenancy ASP.NET core)

发布于 2020-11-30 00:52:36

我正在尝试构建ASP.NET核心api,我在那里有几组用户。这些组具有一个公共数据库,但是从那里他们只能看到分配给它们的记录。

例如,用户XYZ调用控制器从“产品”表中返回值时,只会看到分配给他的组的值。同样,当他添加新产品时,只有该组的用户才能看到它,而其他组则不知道该产品的存在。

我想请你向我解释如何在ASP.NET核心中进行操作,可以使用哪些库,因为不幸的是我不知道如何进行操作。

预先感谢你的帮助。

Questioner
Awros
Viewed
0
Saravanan 2020-12-03 18:49:11

我认为你无需搜索库或框架即可将其构建出来,你可以按以下方式进行实现,

  • 创建一个表,读为 ProductPermissions
  • 在此表中输入recordid,groupid,roleid
  • 用户被分配一组后,相关表应具有类似的值UserDetailsUserGroupsUserRoles
  • 当我想查看我可以访问的产品列表时,我向GetProductsAPI提出了请求
  • 该API从身份验证过程,角色和组ID中获取我的用户ID
  • 现在,你必须将product表和ProductPermissions具有键表连接起来,并按已分配给我的groupid进行过滤。
  • 相同的逻辑适用于我执行的所有实体操作,所有操作都将针对该ProductPermissions进行验证

笔记

为了得到一个通用的表不是多余的ProductPermissions,你可以有表作为EntityPermissions,然后让ENTITYID(如:ProductCategory等等)作为柱和加入,让你对所有实体一个表时将使用的过滤器。