2009-10-03 7 views
2

Nous produisons un certain nombre d'applications qui partagent des assemblages. La mémoire ou l'espace disque n'étant pas un problème, nous utilisons des assemblys privés en dupliquant les assemblys partagés dans le dossier local de chaque application. Cela évite les problèmes causés en les mettant dans le GAC. J'entends que les noms forts sont une bonne chose qui est nécessaire si nous partageons des assemblées au sein du GAC.Pourquoi s'embêter avec des noms forts pour les assemblées privées?

Existe-t-il une bonne raison d'utiliser des noms forts pour les assemblages privés?

BTW: Voici une excellente référence sur les assemblages: link text

Répondre

0

Si vous vous fort nommé assemblées vous résolvez également un problème de sécurité. Lorsque vous nommez votre assemblage, vous ne permettez pas à quelqu'un de modifier votre assemblage ou de le remplacer par un autre.

+0

Ceci n'est pas vrai; les gens peuvent altérer votre assemblage et/ou le remplacer par un autre. Bien sûr, les exécutables ne lieront pas à l'exécution, sauf si la validation a été désactivée ou si les exécutables ont été modifiés pour supprimer l'exigence de liaison forte. Mais si vous êtes en mesure d'altérer un assemblage, il y a de fortes chances que vous soyez en mesure de modifier l'exécutable. –

1

Je dois noter que si vous déplacez des fichiers directement, vous éliminez les avantages que le GAC vous apporte (en particulier le versionnement).

Pour les assemblages privés qui ne sont pas partagés, la dénomination forte n'est pas d'une importance vitale. Tout au plus, cela pourrait empêcher un utilisateur malveillant (non administrateur) de remplacer votre assembly par une version non autorisée. Mais là encore, un administrateur pourrait désactiver la validation de nom fort et permettre ce genre d '"attaque" relativement facilement.

0

D'une manière générale, partout où l'attribution de noms forts est utile, elle est également requise, et vice versa.

Questions connexes