我在使用基于Microsoft Prism Framework的WPF桌面应用程序时遇到了麻烦。应用程序在启动时具有Logon对话框,该对话框创建AuthenticationContext(用户和角色)并运行Prism Bootstrapper(创建ShellWindow和加载模块)。权限是使用标记扩展实现的,因此根据我的理解在视图创建时进行解析:
<MenuItem IsEnabled="{op:AuthToEnabled {x:Static a:ACL.CAN_CLOSE}}" ...>
现在我正在尝试添加abillity以在运行时更改当前用户(及其权限)。 重新创建整个引导程序或shell窗口的可能方法不能按预期工作,通常看起来像黑客。
在使用Prism或WPF时,是否有通用的方法或最佳做法(用户,权限本身及其更改)?
答案 0 :(得分:0)
我不是肯定的,但我相信{x:Static }
只评估一次,即使你的权限发生变化也不会重新评估
当用户选择更改登录时,如何完全重新启动应用程序呢?
我使用其中一个需要在登录信息更改时重新启动的应用程序执行此操作:
Process.Start(Application.ResourceAssembly.Location);
Application.Current.Shutdown();