Отключить дисковый ввод-вывод из внедренных зависимостей - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть проект, который загружает сторонние модули (в форме DLL) и позволяет им выполнять произвольный код.Приложение, загружающее модули, требует повышенных привилегий, так же как и модули.

Все модули сделаны для этого проекта собственными силами, поэтому в настоящий момент риск относительно низок.Однако в будущем могут потребоваться загрузка внешних модулей.

Модули не нуждаются ни в каких модификациях, доступе или каких-либо действиях с любым из дисков, поэтому я хотел бы иметь возможностьотключить любую форму ввода / вывода в модулях.Я не нашел никакого способа сделать это или даже с чего начать.

Внедрение зависимостей от MEF, в частности, с использованием шаблонов проектирования Prism.

1 Ответ

2 голосов
/ 16 февраля 2012

Вы должны взглянуть на эти вопросы:

Как я могу использовать CAS в .NET 4 для блокировки моих расширений MEF?

Lookingдля практического подхода к песочнице .NET плагины

, а также связанные http://msdn.microsoft.com/en-us/library/bb763046.aspx

Короткий рассказ состоит в том, что если ваше приложение работает с полным доверием, то безопасность кода доступаАтрибуты не помешают надстройкам делать то, что им нравится.Вам нужно будет загрузить надстройки в защищенном (изолированном) изолированном домене приложений и получить к ним доступ через удаленное взаимодействие внутри приложения.Для этого см. «Песочница» здесь: http://msdn.microsoft.com/en-us/magazine/ee677170.aspx

...