2012-06-06 5 views
7

私はサンドボックス化されたapp-domainを作成しようとしています。これを達成するために、私はAppDomain.CreateDomainを使用して、DLLのパスをサンドボックス化するようにしています。.net GACからの部分的な信頼のアセンブリ

しかし、そのDLLがGACにある場合、DLLは完全に信頼されているため、そこにPermissionSet.Assertがあれば、無制限のアクセスを受け取ることができます。

  1. 力DLLので、部分的に信頼されます、パスからではなく、GACからロードするのいずれかへの道があるのであれば、私は思っていました。
  2. またはGACの一部のDLLを部分的に信頼するとマークします。

ありがとう!

答えて

1

両方のアセンブリが完全に署名されている場合、CLRはGAC内のものを使用します。ターゲットパスの名前をunsignedにしておくと、CLRは代わりにそのパスを使用します。

これがオプションでない場合は、アセンブリに必要な権限セットを定義できるCreateDomainオーバーライドのいずれかを使用する必要があります。上書きの詳細については、http://msdn.microsoft.com/en-us/library/ms130766.aspxをご覧ください。

http://davedewinter.com/2009/05/22/how-to-host-a-partial-trust-sandbox/から取られた使用例...

+0

static void RunInPartialTrust() { AppDomainSetup setup = new AppDomainSetup { ApplicationBase = Environment.CurrentDirectory }; PermissionSet permissions = new PermissionSet(null); permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution)); permissions.AddPermission(new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess)); AppDomain appDomain = AppDomain.CreateDomain( "Partial Trust AppDomain", null, setup, permissions ); Program p = (Program)appDomain.CreateInstanceAndUnwrap( typeof(Program).Assembly.FullName, typeof(Program).FullName ); p.PartialTrustMain(); } 
davewinter(http://davedewinter.com/2009/05/22/how-to-host-a-partial-trust -sandbox /)リンクにアクセスできなくなりました。リンクにミラーがありますか? – Oli4

関連する問題