J'ai une application dans .NET 4 qui utilise MEF pour l'extensibilité. Mon application principale a trois assemblées: Host
, Application
et Contracts
.Comment puis-je utiliser CAS dans .NET 4 pour verrouiller mes extensions MEF?
Host
est l'exécutable "boot-strapping" qui crée le conteneur et effectue la composition.
Application
contient la logique de mon application, et plus de points d'extension pour des tiers.
Contracts
contient les interfaces (et certaines classes auxiliaires) utilisées dans les points d'extension. Par conséquent, une personne développant une application tierce doit inclure une référence à Contracts
, mais pas à Application
.
Je pense que mon modèle de sécurité devrait ressembler à ceci:
Host
etApplication
devrait être SecurityCriticalContracts
devrait être SecuritySafeCritical- Toutes les extensions 3ème partie doivent être SecurityTransparent
Je pense que 1. sera satisfait par défaut. Je sais que je peux implémenter 2. avec un attribut d'assemblage. La question est, comment puis-je appliquer la règle 3.? Est-ce que le système d'exploitation le fait automatiquement en signalant que toutes les extensions téléchargées ne sont pas fiables? Est-il possible qu'un assembly d'extension téléchargé devienne entièrement fiable?
Vous demandez: « Est-il possible pour un ensemble d'extension pour devenir pleinement téléchargé confiance? » Cela peut dépendre de la façon dont les extensions sont téléchargées. Si un utilisateur peut télécharger manuellement un assembly, puis cliquez avec le bouton droit sur Propriétés et choisissez "Débloquer", il regarde le système comme un assembly local. – JaredReisinger
@JaredReisinger: Cela a du sens. Je suppose que les tierces parties peuvent également signer des assemblées, mais je suis confus quant au processus. –