建模 asp.net 核心身份用户访问
Modeling asp.net core identity user access
我一直在研究如何设置 asp.net 核心身份模型,以便允许用户访问特定数据。
例如,假设我们有 10 家不同的商店。
我希望能够:
有多种类型的用户,例如销售员和采购员。
我该如何设置:
第一个拥有商店 1、2 和 3 数据访问权限的买家。
第二个买家可以访问商店 3、4 和 5 的数据。
第三位买家有权访问商店 6、7、8 和 9 的数据
第一个有权访问商店 3 和 4 的商店库存的销售员。
谁能指出我正确的方向?
阿尔贝托
AspNet Core Identity 不提供强制对具体数据(如特定商店)进行数据访问的方法,这意味着您必须自己实现。但是,您可以在身份模型中描述假定的访问权限:
默认的 ASP.NET Core Identity 模型包含一个 claim-model,您可以在其中定义自己的声明类型,例如 role 和 存储 。然后,您可以将这些声明关联到您的用户:
User 1 Claims:
"role": "buyer"
"store": "1"
"store": "2"
"store": "3"
User 2 Claims:
"role": "salesman"
"store": "3"
"store": "4"
(这已简化,但对您来说可能就足够了。此特定模型的一个限制是,用户只能为其所有角色分配到商店。如果用户是商店 1 的买家,和商店 2 的销售员,您 运行 不清楚他可以访问哪些数据。如果这是一个要求,那么您必须以不同的方式指定每个商店 的角色 索赔类型)
但这并不强制执行数据访问。在对持久数据进行任何查询时,您需要提出自己的过滤器,无论它们是在 SQL、Mongo、redis 还是其他任何地方。
我一直在研究如何设置 asp.net 核心身份模型,以便允许用户访问特定数据。
例如,假设我们有 10 家不同的商店。
我希望能够:
有多种类型的用户,例如销售员和采购员。
我该如何设置:
第一个拥有商店 1、2 和 3 数据访问权限的买家。
第二个买家可以访问商店 3、4 和 5 的数据。
第三位买家有权访问商店 6、7、8 和 9 的数据
第一个有权访问商店 3 和 4 的商店库存的销售员。
谁能指出我正确的方向?
阿尔贝托
AspNet Core Identity 不提供强制对具体数据(如特定商店)进行数据访问的方法,这意味着您必须自己实现。但是,您可以在身份模型中描述假定的访问权限:
默认的 ASP.NET Core Identity 模型包含一个 claim-model,您可以在其中定义自己的声明类型,例如 role 和 存储 。然后,您可以将这些声明关联到您的用户:
User 1 Claims:
"role": "buyer"
"store": "1"
"store": "2"
"store": "3"
User 2 Claims:
"role": "salesman"
"store": "3"
"store": "4"
(这已简化,但对您来说可能就足够了。此特定模型的一个限制是,用户只能为其所有角色分配到商店。如果用户是商店 1 的买家,和商店 2 的销售员,您 运行 不清楚他可以访问哪些数据。如果这是一个要求,那么您必须以不同的方式指定每个商店 的角色 索赔类型)
但这并不强制执行数据访问。在对持久数据进行任何查询时,您需要提出自己的过滤器,无论它们是在 SQL、Mongo、redis 还是其他任何地方。