2010-09-01 37 views
1

Mon application charge un grand nombre de différents ensembles de plug-in. Chaque plug-in peut ajouter leurs propres services dans le récipient et IoC peut également utiliser tous les services fournis par l'application principale. Je passe d'une solution de sécurité de brassage à la maison pour utiliser CAS (PrincipalPermissionAttribute et un dérivé de CodeAccessSecurityAttribute).ensembles de blocs de changement IPrinicpal

Puis-je empêcher les assemblées chargées de changer System.Threading.Thread.CurrentPrincipal (et de cette façon de contourner mes contrôles de sécurité)?

Répondre

0

Vous aurez besoin de refuser l'autorisation SecurityPermission \ ControlPrincipal aux plug-ins. Cela peut être fait, par exemple, en les chargeant dans un appdomain qui refuse cette autorisation à tout le code qui ne possède pas votre signature de nom fort. Voir http://blogs.msdn.com/b/shawnfa/archive/2005/08/08/449050.aspx pour un exemple de cette approche.