Я создаю приложение, которое будет запускать код в изолированной среде.Эта среда должна позволять только недоверенному коду обрабатывать ресурсы, которые ему предоставлены, и возвращать определенный тип данных.Я использую принципы, описанные в этой статье, для настройки песочницы:
Как: выполнить частично доверенный код в песочнице
У меня также есть код, который будетнужно запустить внутри изолированной среды.К сожалению, когда я пытаюсь настроить тип для запуска внутри песочницы, я получаю следующую ошибку:
Правила безопасности наследования нарушены по типу: 'MyTypeRunningInSandbox'.Производные типы должны либо соответствовать доступности безопасности базового типа, либо быть менее доступными.
Я не уверен, почему я получу эту ошибку, так как и базовый тип, и производный тип были созданы мнойи ни один из них не должен быть более или менее безопасным, чем другой.
Структура моего приложения (чтобы помочь вам понять):
TypeLoader class
\
Trusted Sandbox Manager (i.e. sets up a the new sandbox)
\ (the error is happening in this class while creating the
| new app domain)
|
|Untrusted Sandbox Manager (i.e. runs the untrusted code)
Если вы сравните мое решение в отношении статьи Microsoft вышемой код не соответствует следующей строке:
ObjectHandle handle = Activator.CreateInstanceFrom(
newDomain, typeof(Sandboxer).Assembly.ManifestModule.FullyQualifiedName,
typeof(Sandboxer).FullName );
Есть мысли о том, как устранить эту проблему?