用途:在 .NET(ASP.NET Core)清洁架构项目中实现基于权限的细粒度授权,替代仅按角色判断的粗粒度控制。
主要能力:提供静态权限常量(格式 {resource}:{action},如 organizations:read、users:manage_roles)与角色常量(SuperAdmin、Admin、Consultant、Manager、Associate、Viewer);通过 RolePermissions 维护角色到权限的映射,并支持按单个或多个角色汇总权限、判断角色是否具备某权限。自定义 HasPermissionAttribute 继承 AuthorizeAttribute,可用在类或方法上声明所需权限;PermissionRequirement 表示权限要求;PermissionAuthorizationHandler 从用户声明的 permission 中校验权限并记录日志;PermissionAuthorizationPolicyProvider 在策略不存在时按权限名动态创建并缓存策略;RoleToPermissionClaimsTransformation 将角色声明转换为 permission 声明。AuthorizationExtensions.AddPermissionAuthorization 统一注册策略提供器、授权处理器与声明转换。
使用方式:将上述文件放入 /Infrastructure/Authorization/ 目录,在服务注册处调用 AddPermissionAuthorization,并在控制器或方法上标注 [HasPermission("users:read")] 之类的权限。
适用场景:需要按资源与操作粒度控制访问的 .NET 后端系统,例如组织、用户、部门、评估、报表与后台管理等功能模块。
限制:资料未提供具体安装命令、依赖版本、性能数据、收费信息及完整配置示例;角色与权限映射需按实际业务自行调整。