Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Asp.net core 基于资源的再保险列表授权?_Asp.net Core_.net Core_Asp.net Core Webapi_Asp.net Authorization - Fatal编程技术网

Asp.net core 基于资源的再保险列表授权?

Asp.net core 基于资源的再保险列表授权?,asp.net-core,.net-core,asp.net-core-webapi,asp.net-authorization,Asp.net Core,.net Core,Asp.net Core Webapi,Asp.net Authorization,如何实现资源列表的授权 我看到的所有文档都基于IAuthorizationService和AuthorizeAsync方法。但这只适用于一种资源 我是否应该检索所有资源,然后强制检查用户是否有权访问IAuthorizationService的AuthorizeAsync方法?这似乎非常刻板、缓慢和缺乏效率 您将如何做到这一点?我已经在我的几个项目中实现了这一点,除了从数据库中获取所有资源,然后对每个资源执行AuthorizeAsync之外,您所能做的并不多(据我所知) 在某些情况下,您可以在数据

如何实现资源列表的授权

我看到的所有文档都基于IAuthorizationService和AuthorizeAsync方法。但这只适用于一种资源

我是否应该检索所有资源,然后强制检查用户是否有权访问IAuthorizationService的AuthorizeAsync方法?这似乎非常刻板、缓慢和缺乏效率


您将如何做到这一点?

我已经在我的几个项目中实现了这一点,除了从数据库中获取所有资源,然后对每个资源执行AuthorizeAsync之外,您所能做的并不多(据我所知)

在某些情况下,您可以在数据库中拥有存储resourceId/userId的映射表,并根据该映射表进行检查。通过这种方式获取项目更容易,而无需对每个项目执行AuthorizeAsync,但它不适用于每个场景


在这个问题上有一些问题(例如),但没有解决办法。

是的,我看到了这些问题。所以,最后,似乎最好尝试为此构建quer过滤器,你不这样认为吗?有一些基本的过滤器添加到一个可查询的检索中,最终用户应该看到什么。这是一种很好的方法吗?如果可能的话,我可能会在查询过滤器中使用这种方法。在某些情况下(当您必须使用索赔时),这是不可能的。但如果数据库中有映射(resourceId/userId或resourceId/roleId),那么在本例中它是更好的方法。