abp的权限与导航菜单的关系

原来以为各是各的,所以就有了第一个版本.Getallmentus.然后注入了role,当然失败了.获取所有的菜单.一直在思考在什么地方设置菜单是否展示呢?

后面看了源码.才发现自己错了.

UserNavigationManager(这个是一个框架内部调用的类)会获取当前userid的所有的菜单,

数据源跟菜单的RequiredPermissionName有关系.

改数据库中的数据.刷新前台,没有反应.找了半天才知道,是用的eventbus来触发删除当前缓存数据的.eventbus是自动注册(未去找自动注册的实现.)

如下的设计:

AbpUserPermissionCacheItemInvalidator:

IEventHandler<EntityChangedEventData<UserPermissionSetting>>,
IEventHandler<EntityChangedEventData<UserRole>>,
IEventHandler<EntityDeletedEventData<AbpUserBase>>,

ITransientDependency

 

所以只能通过UI去操作才有效果.

 

关于动态的menu,INavigationManager 只能用它来另外处理.建议结构不变.只变名称和路径是可以的.

 

也就是说,不能简单的通过数据库去改数据库,必须通过程序..

 

posted @   forhells  阅读(627)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示