Я пытаюсь установить минимальные разрешения для песочницы AppDomain для загрузки сборки.Кажется, что обязательно иметь разрешение PathDiscovery для appBase и разрешение чтения для загруженной сборки, но разрешение не требуется для зависимых сборок.Мои вопросы: зачем нам 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);