Asp.Net BoilerPlate中PermissionManager.GetAllPermissions()不返回新增权限问题
问题排查清单
- 首先排查权限的租户侧配置:你新增的
PermissionNames.Pages_CadastrarPdv和原有的PermissionNames.Pages_Tenants都指定了multiTenancySides: MultiTenancySides.Host,这类Host层级的权限仅当你使用Host管理员账号调用接口时才会返回,如果你当前登录的是租户账号,默认不会返回任何Host侧权限,你返回的结果中也没有Pages_Tenants权限,完全符合这个特征。如果你需要租户也能使用该权限,可以把配置改为multiTenancySides: MultiTenancySides.Tenant,或者删除该参数(默认同时对Host和租户生效)。 - 检查授权提供器的注册配置:确认你的核心模块(继承AbpModule的核心层模块类)的ConfigureServices方法中,已经添加了如下注册代码:
Configuration.Authorization.Providers.Add<PilotoConciliacaoAuthorizationProvider>();
默认模板会自动生成该注册逻辑,如果你修改过授权提供器的类名、命名空间,或者删除过该配置,会导致新增的权限不生效。
- 检查运行环境缓存:
- 后端修改代码后确认已经重新编译启动,避免旧代码运行
- 前端调用接口前清除浏览器缓存/硬刷新页面,ABP默认会缓存权限数据到本地存储,未清空缓存会一直返回旧的权限列表
- 检查常量定义正确性:确认
PermissionNames.Pages_CadastrarPdv对应的字符串常量没有拼写错误,不存在重复定义的问题。
内容的提问来源于stack exchange,提问作者Lombardo
相关产品推荐
相关产品推荐

