Ce que vous décrivez n'est pas le problème que CAS a été conçu pour résoudre. Le système de sécurité d'accès au code .NET a été conçu pour protéger les utilisateurs bénins du code tiers hostile. Vous essayez de faire le contraire - protéger code bénin de utilisateurs hostiles. Si vous donnez à quelqu'un un morceau de code, il peut faire ce qu'il veut: le désassembler, le réécrire, le recompiler, peu importe, et il n'y a pas grand-chose à faire techniquement pour les arrêter. La meilleure solution consiste probablement à utiliser d'autres mécanismes d'exécution, par exemple les obliger à signer un contrat stipulant qu'ils n'inverseront pas ou ne redistribueront pas votre code, puis les poursuivront s'ils le font. Ou, ne leur donnez tout simplement pas le code en premier lieu. Créez un service Web et conservez le code sur votre serveur, loin des personnes en qui vous n'avez pas confiance.
[J'ai trouvé une question similaire avec des réponses] (http://stackoverflow.com/questions/1416190/restrict-access-to-net-assembly). – Shimmy