我在使用基于 Microsoft Prism 框架的 WPF 桌面应用程序时遇到问题。该应用程序在启动时具有登录对话框,该对话框创建 AuthenticationContext(用户和角色)并运行 Prism Bootstrapper(创建 ShellWindow 并加载模块)。权限是使用标记扩展实现的,因此据我了解,在创建视图时会对其进行解析:
<MenuItem IsEnabled="{op:AuthToEnabled {x:Static a:ACL.CAN_CLOSE}}" ...>
现在我正在尝试添加在运行时更改当前用户(及其权限)的能力。重新创建整个引导程序或 shell 窗口的可能方法无法按预期工作,并且通常看起来像 hack。
通常在使用 Prism 或 WPF 时,是否有通用的方法或最佳实践来执行此类操作(用户、权限本身及其更改)?