AppDomain を作成し、それを介して外部 WPF アプリケーションを実行したいと考えています。主な理由はセキュリティです。外部の 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 アプリを引き続き実行するにはどうすればよいですか? (ちなみに、WPF アプリは単なる [ファイル] -> [新しい WPF アプリケーション] であるため、アンマネージ コードは使用しません)。
ありがとう!