小编Moz*_*eeb的帖子

控制器级别之外的基于 Asp.net Core WebAPI 资源的授权

我正在创建一个具有不同角色的用户的 Web API,此外,作为任何其他应用程序,我不希望用户 A 访问用户 B 的资源。像下面这样:

订单/1(用户A

订单/2(用户B

当然,我可以从请求中获取 JWT 并查询数据库以检查该用户是否拥有该订单,但这会使我的控制器操作变得过于繁重。

示例使用 AuthorizeAttribute 但它似乎太宽泛了,我必须为 API 中的所有路由添加大量条件以检查正在访问哪个路由,然后查询数据库进行多个连接,返回到用户表以返回如果请求是否有效。

更新

对于路由,第一道防线是需要特定声明的安全策略。

我的问题是关于负责确保用户只能访问他们的数据/资源的第二道防线。

在这种情况下是否有任何标准方法要采取?

c# asp.net-core-webapi jwt-auth asp.net-core-3.1

9
推荐指数
2
解决办法
1929
查看次数