私は、アセンブリを読み込むためにサンドボックスAppDomainの最小限の権限を設定しようとしています。読み込まれたアセンブリのappBaseとReadパーミッションについてPathDiscoveryパーミッションを持つことは必須ですが、依存するアセンブリに対してパーミッションは必要ありません。私の質問は次のとおりです: なぜPathDiscoveryが必要ですか?必要なアセンブリごとに十分な読み取りアクセスができませんか? ロードされたアセンブリだけに読み取り権限が必要で、依存権限が必要でないのはなぜですか?ここでサンドボックスAppDomainでアセンブリをロードするための最小限の権限を探します。これらのアクセス許可が必要な理由
いくつかのコンテキストを与えるためのコードスニペットは:
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);