【发布时间】:2014-01-16 20:12:34
【问题描述】:
我有这种情况:
1 个用户 - N 个项目
1 个项目 - N 个任务
1 个项目 - N 条评论
当用户通过身份验证后,他可以:
/api/tasks/1
要删除他的任务,但是当他正在执行 /api/tasks/2 时,他会删除其他人的任务
/api/comments/1
为了得到他的评论,但是当他在做 /api/cmets/2 时,他阅读了其他人的任务
如何拦截用户操作(操作 URI)并以一般方式检查是否允许用户删除此任务。
Task 和 Comment 不知道任何关于 userId 的信息,如何禁止用户删除其他人的数据?
我不是在谈论用户和角色场景。 我说的是操纵 URI 来删除属于其他人的资源。
更新以回答@A Khudairy 的问题
1) 邮箱+密码发送到api。
2) Api 使用用户令牌返回用户。
3) 然后每次请求都会将令牌发送到 api,(以便知道哪个用户在做什么并在后端处理。)
【问题讨论】:
-
你是如何在你的应用中实现授权的
标签: security asp.net-web-api asp.net-web-api2