2009-10-19 8 views
1

Je veux sécuriser mon assemblage (dll) en le liant à un environnement spécifique. Dire que j'ai un DLL (BizLogic.dll), je veux le rendre disponible à mes co-développeurs pour l'utiliser au sein de l'organisation. Mais je ne veux pas que les autres l'utilisent en dehors de mon organisation.Sécurisation des assemblages .net

Existe-t-il un moyen de résoudre ce problème?

Merci à l'avance.

- Mohammed.

+0

[J'ai trouvé une question similaire avec des réponses] (http://stackoverflow.com/questions/1416190/restrict-access-to-net-assembly). – Shimmy

Répondre

2

Que voulez-vous dire par l'extérieur de votre organisation? Néanmoins, avez-vous envisagé de signer votre assemblée?

+0

Merci pour les réponses rapides. Bien en dehors de mon organisation, je veux dire que j'ai un assemblage (bizLogic.dll) et une application web en cours de développement par mes co-développeurs. L'application Web sera examinée par un tiers extérieur à l'organisation. Je ne veux pas qu'ils devraient modifier la base de code (web). Si c'est le cas, mon bizLogic.dll (qui sera une boîte noire pour eux) serait intelligemment détecter et lancer des exceptions car il trouverait un changement dans l'environnement de développement. Merci, Mohammed. – humblecoder

+1

@Mohammed Je pense que maintenant votre Q est plus clair .... par examen, vous voulez dire qu'ils revoient la fonctionnalité de votre application web. Donnez simplement un nom fort à votre assembly, masquer votre code et déployer en mode Release. –

+0

@Xencor - Merci pour le conseil rapide. – humblecoder

1

Très peu qui sera effectivement efficace. Vous pouvez essayer les différents cadres de licence/clé qui existent, mais il y a exactement zéro qui sont incontrôlables à 100%.

0

Créez un utilisateur de domaine, attribuez à cet utilisateur les seules autorisations de lecture sur un objet db. Le mot de passe défini n'expire jamais. Assurer physiquement le mot de passe.

dll doit pouvoir accéder (via votre nouvel utilisateur) à l'objet db pour continuer.

Obfussez votre code.

5

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.

Questions connexes