基于资源的再手术列表授权



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

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

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

你会怎么做?

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

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

关于这个问题有几个问题(例如https://github.com/dotnet/AspNetCore.Docs/issues/10244)但没有解决方案。

最新更新