【发布时间】:2021-07-18 16:55:31
【问题描述】:
假设我有一个包含 3 个表的数据库:
- 客户
- 订单
- 客户订单
我使用不记名令牌构建了一个具有标准身份验证的 WebAPI,我有一个中间件来接收来自令牌的所有必要声明,并且我有一个控制器用于订单的基本 CRUD 操作。
例如: 删除 - 订单/{id} PUT - 订单/{id}
如何确保用户尝试操作的订单属于当前用户? 每次操作前需要先查询数据库确认OrderId属于当前UserId吗?还是有更简单的方法?
【问题讨论】:
-
问题是你不能信任客户端。即使 UI 会显示用户的订单,也不会阻止客户端使用任何订单 ID 操作对后端的请求。
标签: asp.net-web-api domain-driven-design crud webapi user-roles