AppDomainを作成し、それを使って外部WPFアプリケーションを実行したいとします。 主な理由はセキュリティです。私は外部のWPFアプリケーションが何ができるのかを制御したいのです。 具体的には、アンマネージドコードの使用を禁止したいと考えています。AppDomainを作成してWPFを実行する
私は、次のコードを実行しました:
PermissionSet set = new PermissionSet(PermissionState.None);
set.AddPermission(new FileIOPermission(FileIOPermissionAccess.AllAccess, PATH));
set.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
set.AddPermission(new UIPermission(PermissionState.Unrestricted));
set.AddPermission(new SecurityPermission(SecurityPermissionFlag.UnmanagedCode));
Evidence ev = new Evidence();
AppDomain domain = AppDomain.CreateDomain("Test", ev, new AppDomainSetup() { ApplicationBase = PATH }, set);
domain.ExecuteAssembly(PATH);
をし、それは素晴らしい作品。
権限セット内の最後の行を削除すると(つまり、アンマネージコードを実行できるようにする)、動作を停止します。
新しいアプリケーションドメインで管理されていないコードを実行することはできますが、WPFアプリを実行するにはどうすればよいですか? (Btw、WPFアプリケーションは単なるFile-> New WPFアプリケーションなので、アンマネージコードは使用しません)。
ありがとうございます!
どのようにして動作が停止しますか?エラーメッセージはありますか? –
MainWindow.xamlをロードできなかったというエラーメッセージが表示されます。 – user1177998