Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何授予对特定资源的访问权限?_C#_.net_Rest_Authorization_Asp.net Web Api - Fatal编程技术网

C# 如何授予对特定资源的访问权限?

C# 如何授予对特定资源的访问权限?,c#,.net,rest,authorization,asp.net-web-api,C#,.net,Rest,Authorization,Asp.net Web Api,问题: 我有一组信息,一些用户必须通过我的Web应用程序访问这些信息。假设我有相同类型T的资源A、B、C,用户是X、Y、Z。业务声明用户可以访问这些资源,如下表所示 用户->资源 X->A Y->A C Z->abc 现实世界的例子如下: 用户X可以看到洛杉矶的所有超市 用户Y可以看到洛杉矶和芝加哥的所有超市 用户Z可以看到洛杉矶、芝加哥和纽约的所有超市 另一件需要提及的事情是,在任何时候,用户X也可以被授予从纽约观看大型超市的权限 问题: 如何实现授权系统,使其允许我向用户授予对特定资源集

问题: 我有一组信息,一些用户必须通过我的Web应用程序访问这些信息。假设我有相同类型T的资源A、B、C,用户是X、Y、Z。业务声明用户可以访问这些资源,如下表所示

用户->资源
X->A
Y->A C
Z->abc

现实世界的例子如下:

  • 用户X可以看到洛杉矶的所有超市
  • 用户Y可以看到洛杉矶和芝加哥的所有超市
  • 用户Z可以看到洛杉矶、芝加哥和纽约的所有超市
另一件需要提及的事情是,在任何时候,用户X也可以被授予从纽约观看大型超市的权限

问题: 如何实现授权系统,使其允许我向用户授予对特定资源集的访问权限

我的第一个想法: 因为我要使用ASP.NETMVC和WebAPI,所以我的第一个想法是使用基于角色的授权。之后,我发现了如何将基于角色的授权的概念扩展到所谓的基于“活动”的授权。
但是,即使这种解决方案也不适合我的业务,因为在我的代码中,我必须有一个名为
GetAllHypermarkets
的函数,该函数不带任何参数,它将返回用户可以看到的所有超级市场。例如,对于用户X,它将只返回来自洛杉矶的大型超市。我如何才能实现这一点?

有许多有趣的术语可以帮助您:

  • 基于属性的访问控制
  • 基于策略的访问控制
  • 风险自适应访问控制
  • 基于情境的访问控制
我想每个人都想拥有一个由安全专业人士命名的访问控制解决方案,这就是为什么大量的名称和难以理解的规范

来自这些ABAC的AFAIK是最详细的解决方案。例如,甚至有一个支持ABAC。。。我建议您使用google或获取更多详细信息,因为我不是安全专家,所以我可能对这些术语有错误的信息。我会以你的名义发一个“有什么不同”的问题,但我想他们会以1000张反对票踢我的屁股