2010-10-20 3 views
2

Je travaille avec .NET 2.0 addin qui prend un AppDomain créé par une application externe et applique une politique de sécurité définie par l'utilisateur (PolicyLevel) en utilisant la méthode AppDomain.SetAppDomainPolicy(). Cependant, cette méthode est obsolète dans .NET 4.0 et échoue à l'exécution. Voici un exemple de code: Portage d'un sandbox de sécurité de .NET 2.0 vers .NET 4.0

AppDomain domain = ExternalApplication.GetAppDomain(); //This call is from external program which I can’t change. 

PolicyLevel pl = GetUserDefinedPolicyLevel() 

domaine. SetAppDomainPolicy (pl); // Cela échoue dans .NET 4.0

J'ai vu 4,0 exemple des paramètres de sécurité AppDomain à l'aide d'appel suivant:

AppDomain.CreateDomain (string friendlyName, preuve securityInfo, information AppDomainSetup, PermissionSet ensemble d'autorisation, params StrongName [] fullTrustAssemblies) Cependant, cette API est utilisée lorsqu'un AppDomain est déjà créé. Dans ma situation, l'addin doit utiliser des AppDomains existants.

Une autre solution que j'ai trouvée consistait à utiliser des fichiers .config et à ajouter un élément <NetFx40_LegacySecurityPolicy enabled="true" /> pour appliquer la sécurité AppDomain héritée. Ce n'est pas non plus une option dans mon cas car j'ai un addin pour les applications et je ne peux pas ajouter de fichiers .config.

Existe-t-il un moyen de modifier la sécurité AppDomain à l'exécution après sa création dans .NET 4.0?

J'espère que cela devrait être possible, car sinon, il semblerait que 4.0 ait supprimé la possibilité de renforcer la sécurité au moment de l'exécution.

Merci

Répondre

0

Non, vous ne pouvez pas changer le PermissionSet d'un AppDomain après qu'il a été créé. Il y a une alternative cependant. Voir la réponse acceptée pour ce post.

Questions connexes