У меня есть приложение в .NET 4, которое использует MEF для расширяемости.Мое основное приложение имеет три сборки: Host
, Application
и Contracts
.
Host
- это исполняемый файл «boot-strapping», который создает контейнер и создает композицию.
Application
содержит логику моего приложения и дополнительные точки расширения для сторонних разработчиков.
Contracts
содержит интерфейсы (и некоторые вспомогательные классы), которые используются в точках расширения.
Поэтому кто-то, разрабатывающий стороннее приложение, должен включить ссылку на Contracts
, но не на Application
.
Я думаю, что моя модель безопасности должна выглядеть следующим образом:
Host
и Application
должно быть SecurityCritical Contracts
должно быть SecuritySafeCritical - Все сторонние расширения должны быть SecurityTransparent
Я думаю, что 1. будет выполнено по умолчанию.Я знаю, что я могу реализовать 2. с атрибутом сборки.Вопрос в том, как применить правило 3.?Операционная система делает это автоматически, помечая все загруженные расширения как ненадежные?Возможно ли, чтобы загруженная сборка расширения стала полностью доверенной?