アセンブリをロードするために、サンドボックスAppDomainの最小権限を設定しようとしています。appBaseに対するPathDiscovery権限と、ロードされたアセンブリに対する読み取り権限が必須のようですが、依存するアセンブリには権限は必要ありません。私の質問は次のとおりです。なぜPathDiscoveryが必要なのですか?必要なアセンブリごとに読み取りアクセスが十分ではありませんか?ロードされたアセンブリのみが読み取り権限を必要とし、依存するアセンブリは必要ないのはなぜですか?
ここに、コンテキストを与えるためのコードスニペットがあります。
AppDomainSetup setup = new AppDomainSetup
{
ApplicationName = "Name",
ApplicationBase = binFolder,
};
PermissionSet permissionSet = new PermissionSet(PermissionState.None);
permissionSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
// Mandatory. Why PathDiscovery is needed?
permissionSet.AddPermission(new FileIOPermission(FileIOPermissionAccess.PathDiscovery, binFolder));
// Mandatory. Why Read is not also needed for all dependent assemblies?
permissionSet.AddPermission(new FileIOPermission(FileIOPermissionAccess.Read, assemblyPath));
var domain = AppDomain.CreateDomain("Domain Name", null, setup, permissionSet);
domain.CreateInstanceFromAndUnwrap(assemblyPath, typeName);