C# 运行时在WPF/Prism桌面应用程序中更改用户及其权限的常用方法

C# 运行时在WPF/Prism桌面应用程序中更改用户及其权限的常用方法,c#,wpf,prism,prism-4,C#,Wpf,Prism,Prism 4,我对基于MicrosoftPrism框架的WPF桌面应用程序有问题。应用程序在启动时具有登录对话框,该对话框创建AuthenticationContext(用户和角色)并运行Prism Bootstrapper(创建ShellWindow和加载模块)。权限是使用标记扩展实现的,因此在创建视图时进行解析,据我所知: 现在我尝试添加在运行时更改当前用户(及其权限)的能力。 重新创建整个引导程序或shell窗口的可能方法并没有像预期的那样工作,而且通常看起来像黑客 在一般情况下使用Prism或WP

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


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


在一般情况下使用Prism或WPF时,是否有一种常见的方法或最佳实践来做这些事情(用户、权限本身及其更改)?

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

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

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

Process.Start(Application.ResourceAssembly.Location);
Application.Current.Shutdown();

我不是肯定的,但我相信
{x:Static}
只被评估一次,即使您的权限发生了更改,也不会得到重新评估

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

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

Process.Start(Application.ResourceAssembly.Location);
Application.Current.Shutdown();

谢谢,我也有这个想法。但我对这个解决方案的可靠性有些怀疑,明天我会做实验。汉克斯,我也有这个想法。但我对这个解决方案的可靠性有些怀疑,我明天会做实验