Partager via


CA2210 : Les assemblys doivent porter des noms forts valides

TypeName

AssembliesShouldHaveValidStrongNames

CheckId

CA2210

Catégorie

Microsoft.CSharp

Modification avec rupture

Modification 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 ne serait pas valide sans les paramètres du Registre actuels de l'ordinateur.

Description de la règle

Cette règle récupère et vérifie le nom fort d'un assembly. Une violation se produit si chacune des conditions suivantes se vérifie :

  • L'assembly n'a pas de nom fort.

  • L'assembly a été modifié après signature.

  • La signature de l'assembly est différée.

  • L'assembly n'a pas été signé correctement ou la signature a échoué.

  • L'assembly requiert que les paramètres du Registre fassent l'objet d'une vérification. Par exemple, l'outil Strong Name Tool (Sn.exe) a été utilisé pour ignorer une vérification destinée à 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 prévenir l'utilisateur si le contenu de l'assembly a été modifié.

  • Il ne peut pas être chargé dans le Global Assembly Cache.

Remarquez que pour charger et analyser un assembly dont la signature a été différée, vous devez désactiver sa vérification.

Comment corriger les violations

Pour créer un fichier de clé

Utilisez l'une des procédures suivantes :

Pour signer votre assembly avec un nom fort dans Visual Studio

  1. Dans Visual Studio, ouvrez votre solution.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Propriétés.

  3. Cliquez sur l'onglet Signature, puis activez la case à cocher Signer l'assembly.

  4. Dans Choisir un fichier de clé de nom fort, sélectionnez Nouveau.

    La fenêtre Créer une clé de nom fort s'affiche.

  5. Dans Nom du fichier de clé, tapez le nom de votre clé de nom fort.

  6. Choisissez s'il faut ou non protéger la clé avec un mot de passe, puis cliquez sur OK.

  7. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Générer.

Pour signer votre assembly avec un nom fort hors de Visual Studio

  • Utilisez l'outil de nom fort (Sn.exe) fourni par le Kit de développement logiciel .NET Framework. Pour plus d'informations, consultez Sn.exe (outil Strong Name Tool).

Quand supprimer les avertissements

Ne supprimez un avertissement de cette règle que si l'assembly est utilisé dans un environnement où falsifier un contenu n'est pas un problème.

Voir aussi

Tâches

Comment : signer un assembly avec un nom fort

Référence

Sn.exe (outil Strong Name Tool)

System.Reflection.AssemblyKeyFileAttribute

System.Reflection.AssemblyKeyNameAttribute