SuperAPI AI 工具集

permission-authorization

通用与其它

查看项目

更新于 10-16 08:08

技能介绍

用途:在 .NET Clean Architecture 项目中实现细粒度的基于权限的授权,取代仅按角色判断的简单访问控制。资料将其定位为权限授权搭建方案,代码组织在 /Infrastructure/Authorization/ 目录下。

主要能力与组件:Permissions.cs 定义 {resource}:{action} 格式的静态权限常量(如 organizations:read、users:write、reports:export);Roles.cs 定义角色常量(SuperAdmin、Admin、Consultant、Manager、Associate、Viewer);RolePermissions.cs 维护角色到权限的映射,并提供 GetPermissionsForRole、GetPermissionsForRoles、HasPermission 方法。HasPermissionAttribute 是自定义 Authorize 特性,构造函数以权限名作为 policy。PermissionRequirement 表示单个权限需求。PermissionAuthorizationHandler 从用户的 "permission" 声明中读取权限并决定是否通过。PermissionAuthorizationPolicyProvider 在策略不存在时按权限名动态创建并缓存策略。RoleToPermissionClaimsTransformation 将角色声明转换为权限声明。AuthorizationExtensions.AddPermissionAuthorization 用 AddSingleton、AddScoped 注册策略提供程序、授权处理器与声明转换,并调用 AddAuthorization 配置。

使用方式:将上述文件放入基础设施层 Authorization 目录,在启动时调用 AddPermissionAuthorization(),然后在控制器或方法上标注 [HasPermission(Permissions.UsersRead)] 之类的特性即可。

适用场景:需要按资源与操作组合控制访问的 .NET 后端,角色较多、权限需独立演进的项目。

限制:资料未说明该技能的安装命令、依赖版本、目标框架、测试方式与收费信息;资料中的模板含占位符 {name},需要按实际项目名替换。类别归为安全与审计,但其应用面是 .NET 后端开发。