【发布时间】:2016-02-29 06:43:10
【问题描述】:
首先,我是 C# 授权领域的新手。我在IPrincipal、IIdentity Claim 上阅读了很多内容,但我无法将其映射到我当前的应用程序。
考虑:我有三个用户:Alice、Bob 和 Charlie,他们都有文件。 假设我以 Alice 和 Bob 的身份登录,而 Charlie 与 Alice 共享他们文件的权限。现在,Bob 向 Alice 授予了 r/w 访问权限,但 Charlie 只授予了 Read 访问权限。
API 的公开方式是通过 WebApi 作为 REST 端点(属性路由)。理想情况下,我会在端点上放置另一个属性,并声明它需要例如:
GET /{user}/files/{fileId} // Gets: Claim("files", "read")
DELETE /{user}/files/{fileId} // Gets: Claim("files", "delete")
这里的问题是我不知道如何评估这些声明,因为它们依赖于user 的值。在示例中,user 是 Bob 或 Charlie,而我以 Alice 身份登录。
谁能帮我看看如何建立这样的系统?我会对一些特定领域的术语或一篇好的博文感到满意。
【问题讨论】:
-
如果您认为有必要,请向我寻求说明或建议一种完全不同的方法 =)
标签: c# rest asp.net-web-api authorization claims