小编Sea*_*lai的帖子

在 ASP.Net 核心中应用粒度权限限制

背景

在 ASP.Net 核心中应用精细的权限级别限制的最佳方法是什么。我已经设置了身份验证,并且我的应用程序会发出在一定时间后过期的令牌。

我的 Web 应用程序还使用了角色和权限,其中某个角色可以与一组权限相关联。我已经播种了权限并限制了对它们的访问,因为即使是管理员用户也无法更改、创建或删除任何内容(即只读)。另一方面,角色是动态的,尽管超级管理员和管理员是固定的。任何具有超级管理员访问角色的用户都有权创建新角色并为该角色分配权限。

我想要做的是根据这些权限限制对我的应用程序中所有其他控制器的访问。

我正在考虑使用基于策略的授权,其中每个权限都将与特定策略相关联(即[Authorize(Policy = "delete users")])。然后我会将用户拥有的所有权限嵌入我在登录时发出的令牌中。

我不愿意以这种方式实现它,因为虽然权利可能是硬编码的,但它们可能/会随着时间的推移而增加,如果我拥有大量的权利,那么我将所有这些都嵌入到令牌。

有没有更好的方法可以达到这种安全级别???

c# security authentication authorization asp.net-core

3
推荐指数
1
解决办法
2069
查看次数