I have an application in .NET 4 that uses MEF for extensibility. My main application has three assemblies: Host , Application and Contracts .
Host is the boot-strapping executable that creates the container and executes the composition.
Application contains the logic of my application and additional extension points for third parties.
Contracts contains interfaces (and some helper classes) that are used at extension points.
Therefore, someone developing a third-party application should include a link to Contracts , but not to Application .
I think my security model should look like this:
Host and Application must be SecurityCriticalContracts must be SecuritySafeCritical- All third-party extensions must be SecurityTransparent
I think that 1. will be executed by default. I know that I can implement 2. with an assembly attribute. The question is, how can I apply rule 3.? Does the operating system do this automatically, marking all downloaded extensions as untrustworthy? Is it possible for a loaded incremental assembly to become fully trusted?
Scott Whitlock Aug 04 '10 at 2:11 2010-08-04 02:11
source share