CA2210 : Les assemblys doivent porter des noms forts valides
Élément | Valeur |
---|---|
ID de la règle | CA2210 |
Category | Microsoft.Design |
Modification avec rupture | Sans rupture |
Cause
Un assembly n’est pas signé avec un nom fort, le nom fort n’a pas pu être vérifié ou le nom fort n’est pas valide sans les paramètres de Registre actuels de l’ordinateur.
Remarque
Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.
Description de la règle
Cette règle récupère et vérifie le nom fort d’un assembly. Une violation se produit dans les cas suivants :
L’assembly n’a pas de nom fort.
L’assembly a été modifié après la signature.
L’assembly est un assembly à signature différée.
L’assembly n’a pas été signé correctement ou la signature a échoué.
L’assembly nécessite des paramètres de Registre pour réussir la vérification. Par exemple, l’outil Strong Name (Sn.exe) a été utilisé pour ignorer la vérification de l’assembly.
Le nom fort protège les clients du chargement à leur insu d'un assembly falsifié. Les assemblys sans noms forts ne doivent pas être déployés hors de scénarios très limités. Si vous partagez ou distribuez des assemblys qui ne sont pas signés correctement, ceux-ci peuvent être falsifiés, le Common Language Runtime peut ne pas les charger ou l'utilisateur peut être amené à désactiver une vérification sur son ordinateur. Un assembly sans nom fort présente les inconvénients suivants :
Ses origines ne peuvent pas être vérifiées.
Le common language runtime ne peut pas avertir les utilisateurs si le contenu de l’assembly a été modifié.
Il ne peut pas être chargé dans le Global Assembly Cache.
Notez que pour charger et analyser un assembly à signature différée, vous devez désactiver la vérification de l’assembly.
Comment corriger les violations
Créer un fichier de clé
Effectuez l’une des procédures suivantes :
Utilisez l’outil Assembly Linker (AI.exe).
Pour .NET Framework 2.0, utilisez l’option de compilateur
/keyfile
ou/keycontainer
(option de l’éditeur de liens /KEYFILE (spécifier une clé ou une paire de clés pour signer un assembly) ou /KEYCONTAINER (spécifier un conteneur de clés pour signer un assembly) en C++).Pour le .NET Framework v1.0 ou v1.1, utilisez l’attribut System.Reflection.AssemblyKeyFileAttribute ou System.Reflection.AssemblyKeyNameAttribute.
Signer votre assembly avec un nom fort dans Visual Studio
Ouvrez votre solution dans Visual Studio.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Propriétés.
Sous l’onglet Signature, activez la case à cocher Signer l’assembly.
Dans Choisir un fichier de clé de nom fort, sélectionnez Nouveau.
La fenêtre Créer une clé de nom fort s’affiche.
Dans Nom du fichier de clé, tapez un nom pour votre clé de nom fort.
Choisissez s’il faut protéger la clé avec un mot de passe, puis cliquez sur OK.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Générer.
Signer votre assembly avec un nom fort en dehors de Visual Studio
Utilisez l’outil Strong Name (Sn.exe).
Quand supprimer les avertissements
Supprimez un avertissement de cette règle uniquement si l’assembly est utilisé dans un environnement où la falsification de contenu ne pose pas problème.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour