J'essaie de trouver un moyen qui empêche les autres d'utiliser vos DLL publiées. Par exemple, imaginons que vous créez un outil de traitement de photos WinUI léger et léger, séparé en plusieurs assemblages. L'un d'entre eux est votre précieux assembly filters.dll qui fait essentiellement tout le travail de filtrage de base. Une fois que vous publiez votre application, comment pouvez-vous empêcher d'autres de prendre ce filters.dll et de l'utiliser dans d'autres projets?Restriction à l'aide de la fonctionnalité dlls nommée forte
J'ai déjà essayé de regarder le StrongNameIdentityPermissionAttribute qui a un bon exemple here mais il ne semble pas fonctionner pour moi, le code fonctionne sans jeter des exceptions de sécurité ..
Toutes les idées?
Notez que si vous effectuez un SN-ing sur les assemblages dépendants, internalsVisibleTo doit être un nom d'assembly complet [y compris le jeton SN]. Mais ma principale préoccupation ici serait que InternalsVisibleTo n'aide pas beaucoup sauf qu'un obfuscator sera [out of the box] généralement plus agressif avec les internes qu'avec les publics. –
Les internes empêcheront quelqu'un de référencer directement l'assemblée et comme vous le dites, les internes peuvent aussi être obscurcis, ce qui n'est pas le cas des publics.Si vous comptez sur l'obfuscation seule, votre interface publique est toujours exposée à être réutilisée. En fin de compte, si le code est déployé sur le client, vous vous battez contre une bataille perdue. –
@John: Attention, ce n'est pas ce que je disais - interne ne le rend pas obfuscatable. La plupart des obfuscateurs ont un interrupteur qui dit «ceci est mon ensemble complet d'assemblées» qui obscurcit aussi les publics. Comme la réflexion peut tout appeler privé, il y a généralement un moyen d'indiquer que quelque chose ne devrait pas être obscurci même si l'obfuscateur pense que cela a du sens - soit par ObfuscationAttribute ou par un paramètre de configuration obfuscator. La valeur de peopel contrecarrée dans les tentatives de «référencement direct» est pire qu'inutile en tant que mécanisme de protection de la propriété intellectuelle. –