多租户 ASP.NET 核心
Multi tenancy ASP.NET core
我正在尝试构建 ASP.NET 核心 api 我有几个用户组。这些组有一个公共数据库,但从那里他们只能看到分配给他们的记录。
例如 用户 XYZ 调用控制器返回产品 table 的值只能看到分配给他的组的那些。同样他添加一个新的Product,只有他所在组的用户看到,其他组不知道这个Product的存在。
我想请您向我解释如何在 ASP.NET 核心中执行此操作,我可以使用哪些库,因为不幸的是我不知道如何执行此操作。
预先感谢您的帮助。
我认为你不需要搜索库或框架来构建它,你可以按如下方式实现,
- 创建一个 table,读作
ProductPermissions
- 在此table
中为recordid、groupid、roleid创建一个条目
- 为用户分配群组后,相关的 table 应具有
UserDetails
、UserGroups
、UserRoles
等值
- 当我想查看我可以访问的产品列表时,我向
GetProducts
API 发出请求。
- API 从身份验证过程中获取我的用户 ID、角色和组 ID
- 现在,您必须使用密钥加入产品 table 和
ProductPermissions
table,并按我分配的组 ID 进行过滤。
- 相同的逻辑适用于我所做的所有实体操作,任何操作都将根据
ProductPermissions
table. 进行验证
备注
为了获得比冗余 ProductPermissions
更通用的 table,您可以将 table 作为 EntityPermissions
,然后使用实体 ID(例如:Product
、Category
等)作为一列,在加入期间将用作过滤器,以便所有实体都有一个 table。
我正在尝试构建 ASP.NET 核心 api 我有几个用户组。这些组有一个公共数据库,但从那里他们只能看到分配给他们的记录。
例如 用户 XYZ 调用控制器返回产品 table 的值只能看到分配给他的组的那些。同样他添加一个新的Product,只有他所在组的用户看到,其他组不知道这个Product的存在。
我想请您向我解释如何在 ASP.NET 核心中执行此操作,我可以使用哪些库,因为不幸的是我不知道如何执行此操作。
预先感谢您的帮助。
我认为你不需要搜索库或框架来构建它,你可以按如下方式实现,
- 创建一个 table,读作
ProductPermissions
- 在此table 中为recordid、groupid、roleid创建一个条目
- 为用户分配群组后,相关的 table 应具有
UserDetails
、UserGroups
、UserRoles
等值 - 当我想查看我可以访问的产品列表时,我向
GetProducts
API 发出请求。 - API 从身份验证过程中获取我的用户 ID、角色和组 ID
- 现在,您必须使用密钥加入产品 table 和
ProductPermissions
table,并按我分配的组 ID 进行过滤。 - 相同的逻辑适用于我所做的所有实体操作,任何操作都将根据
ProductPermissions
table. 进行验证
备注
为了获得比冗余 ProductPermissions
更通用的 table,您可以将 table 作为 EntityPermissions
,然后使用实体 ID(例如:Product
、Category
等)作为一列,在加入期间将用作过滤器,以便所有实体都有一个 table。