2

Microsoft Prism Framework に基づく WPF デスクトップ アプリケーションに問題があります。アプリケーションには、起動時に AuthenticationContext (ユーザーとロール) を作成し、Prism Bootstrapper (ShellWindow を作成してモジュールをロードする) を実行するログオン ダイアログがあります。アクセス許可はマークアップ拡張機能を使用して実装されるため、私が理解しているように、ビューの作成時に解析されます。

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

現在、実行時に現在のユーザー (およびその権限) を変更する機能を追加しようとしています。ブートストラップまたはシェル ウィンドウ全体を再作成する可能な方法は、期待どおりに機能せず、一般的にハッキングのように見えます。

PrismまたはWPFを一般的に使用するときに、そのようなこと(ユーザー、権限自体、およびそれらの変更)を行うための一般的な方法またはベストプラクティスはありますか?

4

1 に答える 1

0

私は前向きではありませんが、{x:Static }評価は1回だけで、権限が変更されても再評価されることはないと思います。

ユーザーがログインを変更することを選択したときに、アプリケーションを完全に再起動するのはどうですか?

ログイン情報が変更されたときに再起動が必要なアプリケーションの1つでこれを行います。

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