基于资源的授权以获得资源清单?

时间:2020-03-28 11:58:31

标签: asp.net-core .net-core asp.net-core-webapi asp.net-authorization

您如何实现对资源列表的授权?

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

我应该检索所有资源,然后使用IAuthorizationService的AuthorizeAsync方法强制检查用户是否可以访问吗?这似乎非常棘手,缓慢且效率低下。

您将如何做?

1 个答案:

答案 0 :(得分:0)

我已经在几个项目中实现了这一点,除了从数据库中获取所有资源,然后在每个项目上执行AuthorizeAsync之外,据我所知,您无能为力。

在某些情况下,您可以在数据库中具有映射表,该映射表存储resourceId / userId并根据该表进行检查。这样,无需在每个对象上执行AuthorizeAsync即可轻松获取项目,但不适用于每种情况...

关于此主题有一些问题(例如https://github.com/dotnet/AspNetCore.Docs/issues/10244),但没有解决方案。