2

我在使用基于 Microsoft Prism 框架的 WPF 桌面应用程序时遇到问题。该应用程序在启动时具有登录对话框,该对话框创建 AuthenticationContext(用户和角色)并运行 Prism Bootstrapper(创建 ShellWindow 并加载模块)。权限是使用标记扩展实现的,因此据我了解,在创建视图时会对其进行解析:

<MenuItem IsEnabled="{op:AuthToEnabled {x:Static a:ACL.CAN_CLOSE}}" ...>

现在我正在尝试添加在运行时更改当前用户(及其权限)的能力。重新创建整个引导程序或 shell 窗口的可能方法无法按预期工作,并且通常看起来像 hack。

通常在使用 Prism 或 WPF 时,是否有通用的方法或最佳实践来执行此类操作(用户、权限本身及其更改)?

4

1 回答 1

0

我不是肯定的,但我相信{x:Static }只会评估一次,即使您的权限发生变化也不会重新评估

当用户选择更改登录时,完全重新启动您的应用程序怎么样?

我使用我的一个应用程序执行此操作,该应用程序在登录信息更改时需要重新启动:

Process.Start(Application.ResourceAssembly.Location);
Application.Current.Shutdown();
于 2012-10-15T14:16:01.263 回答