Je permets aux utilisateurs de mon application d'exécuter des extraits de C# pour pouvoir manipuler directement certains objets dans mes assemblées sans avoir à écrire une grande couche d'interface de script pour exposer explicitement tout.Comment puis-je limiter les autorisations de sécurité d'un assembly, mais pas celles de ses sites?
Ce code sera injecté dans un assembly compilé dynamiquement, donc je peux contrôler l'assembly lui-même, mais j'ai besoin d'arrêter le code accédant à mes méthodes privées en utilisant la réflexion.
J'ai essayé d'appeler securityPermissionObject.Deny() juste avant d'exécuter le code, mais cela bloque les méthodes sur mes objets d'utiliser la réflexion (que certains font) lorsqu'ils sont appelés par le code de l'utilisateur.
Existe-t-il un moyen de restreindre les autorisations uniquement sur l'assembly suspect sans affecter les méthodes publiques qu'il appelle sur mes assembly approuvés?
Cela semble être le seul moyen viable de contrôler les restrictions d'autorisation assez bien, dommage qu'il soit nécessaire d'exposer explicitement chaque méthode sûre à l'extérieur du bac à sable avec une certaine forme de communication. – mentlegen