Procédure pas à pas : octroi et suppression d'autorisations pour une solution Office (Office System 2003)

Mise à jour : novembre 2007

S'applique à

Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés.

Type de projet

  • Projets au niveau du document

  • Projets au niveau de l'application

Version de Microsoft Office

  • Microsoft Office 2003

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Cette procédure pas à pas présente les notions de base liées à la sécurité dans Visual Studio Tools pour Office.

Cette procédure pas à pas illustre les tâches suivantes :

  • suppression du paramètre de sécurité par défaut ;

  • ajout d'un nouveau jeu d'autorisations.

Composants requis

Les composants suivants sont nécessaires pour exécuter cette procédure pas à pas :

  • Visual Studio Tools pour Office (composant facultatif de Visual Studio 2008 Professional et Visual Studio Team System)

  • Microsoft Office Excel 2003

Création du projet

Dans cette étape, vous allez créer un projet de classeur Excel.

Pour créer un projet

  • Créez un projet de classeur Excel avec le nom My Security Test, à l'aide du modèle de projet pour Office 2003.

    Les étapes dans cette procédure pas à pas supposent que vous enregistrez le projet sur C:\Walkthroughs. Dans l'Assistant, sélectionnez Créer un nouveau document. Pour plus d'informations, consultez Comment : créer des projets Visual Studio Tools pour Office.

Visual Studio ouvre le nouveau classeur Excel dans le concepteur et ajoute le projet My Security Test à l'Explorateur de solutions.

Ajout du code-behind de la feuille de calcul

Le projet a besoin de code que vous pouvez exécuter pour tester si la sécurité est définie correctement. Dans cette procédure pas à pas, vous ajoutez un message à un événement d'initialisation de la feuille de calcul.

Pour ajouter un message à un événement d'initialisation

  1. Vérifiez que le classeur My Security Test.xls est ouvert dans le concepteur Visual Studio, avec la feuille Sheet1 affichée.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Sheet1.vb ou Sheet1.cs, puis cliquez sur Afficher le code dans le menu contextuel.

  3. Ajoutez le code suivant à la méthode Startup à l'intérieur de la classe Sheet1 pour afficher un message pendant l'initialisation.

    Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        MessageBox.Show("Security settings are correct.")
    End Sub
    
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        MessageBox.Show("Security settings are correct.");
    }
    
  4. Appuyez sur F5 pour exécuter le projet.

    Excel démarre et le message apparaît.

  5. Fermez le message.

  6. Fermez Excel.

  7. Dans le concepteur Visual Studio, recherchez et sélectionnez l'onglet correspondant à My Security Test.xls.

  8. Fermez My Security Test.xls (l'aire de conception de la feuille de calcul Excel) dans le concepteur Visual Studio.

    Vous devez fermer toutes les instances ouvertes d'Excel avant de pouvoir modifier la stratégie de sécurité.

Lorsque vous avez créé le projet de classeur Excel, l'Assistant a ajouté un nouveau groupe de codes de sécurité et un groupe de codes enfant à la stratégie de sécurité au niveau utilisateur.

Ensuite, supprimez le groupe de codes que l'Assistant a créé.

Suppression du groupe de codes par défaut

Recherchez et supprimez le groupe de codes par défaut qui a été créé.

Pour supprimer un groupe de codes

  1. Dans le Panneau de configuration, ouvrez Outils d'administration.

  2. Exécutez Configuration Microsoft .NET Framework 2.0.

    L'outil Configuration Microsoft .NET Framework 2.0 n'est pas inclus avec Visual Studio 2008. Vous pouvez l'installer dans le cadre du Kit de développement logiciel (SDK) .NET Framework 2.0, qui est disponible dans le Centre de téléchargement Microsoft. Pour obtenir un exemple, consultez le Kit de développement logiciel (SDK) .NET Framework 2.0 (x86) (en anglais)

  3. Dans l'arborescence, développez Configuration de .NET Framework 2.0, Poste de travail, Stratégie de sécurité du runtime, Utilisateur, Groupes de codes, All_Code, puis VSTOProjects.

    Il existe un GUID pour chaque projet que vous avez créé. Développez chaque GUID pour consulter le chemin d'accès au document associé.

  4. Cliquez avec le bouton droit sur le GUID pour le groupe de codes C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.xls, puis cliquez sur Supprimer dans le menu contextuel.

    Une boîte de dialogue vous demande si vous êtes sûr de vouloir supprimer ce groupe de codes.

  5. Cliquez sur Oui.

  6. Revenez à Visual Studio, puis appuyez sur F5 pour exécuter le projet My Security Test.

    Un message d'erreur indique que la stratégie de sécurité .NET actuelle n'autorise pas l'exécution de la personnalisation.

  7. Cliquez sur OK.

  8. Fermez Excel.

L'assembly ne peut pas s'exécuter s'il n'a pas d'autorisation explicite dans la stratégie de sécurité Microsoft .NET Framework.

Ensuite, accordez l'autorisation à l'assembly en utilisant comme preuve un nom fort plutôt qu'une URL.

Attribution d'un nom fort à l'assembly

Un nom fort est généralement plus sécurisé qu'une URL comme preuve. Vous pouvez créer un nom fort et l'assigner à l'assembly dans Visual Studio.

Pour créer un nom fort

  1. Dans le menu Projet dans Visual Studio, cliquez sur Propriétés de My Security Test.

  2. Cliquez sur l'onglet Signature.

  3. Sélectionnez Signer l'assembly.

  4. Dans la liste Choisir un fichier de clé de nom fort, cliquez sur Nouveau.

  5. Dans la boîte de dialogue Créer une clé de nom fort, tapez SecurityTestKey dans la zone Nom du fichier de clé.

  6. Désactivez la case à cocher Protéger mon fichier de clé par un mot de passe.

  7. Cliquez sur OK.

    Le fichier de clé SecurityTestKey.snk apparaît dans l'Explorateur de solutions.

  8. Dans le menu Générer, cliquez sur Générer la solution pour générer l'assembly par rapport à la paire de clés de nom fort.

Remarque :

Il est important de conserver le fichier de clé de façon sécurisée. En général, vous devez le protéger avec un mot de passe et faire le nécessaire pour empêcher les personnes non autorisées d'y accéder. De nombreuses décisions confidentielles reposent sur le fichier de clé. Ne donnez le fichier de clé qu'aux personnes responsables et dignes de confiance. Si un utilisateur malveillant obtient votre fichier de clé et découvre le mot de passe, il peut créer des assemblys malveillants que vous penserez avoir écrits.

Octroi de niveaux de confiance en fonction du nom fort

Maintenant, ajoutez un nouveau groupe de codes pour accorder une confiance totale à l'assembly en fonction du nom fort.

Pour accorder des niveaux de confiance en fonction du nom fort

  1. Rouvrez Configuration Microsoft .NET Framework 2.0.

  2. Cliquez avec le bouton droit sur le nœud VSTOProjects, puis cliquez sur Nouveau dans le menu contextuel.

  3. Tapez le nom Nom fort du test de sécurité pour le nouveau groupe de codes, puis cliquez sur Suivant.

  4. Dans la liste Choisissez le type de condition pour ce groupe de codes, cliquez sur Nom fort.

  5. Cliquez sur Importer.

  6. Recherchez C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.dll pour Visual Basic ou C:\Walkthroughs\My Security Test\My Security Test\bin\debug\My Security Test.dll pour C#, puis cliquez sur Ouvrir.

  7. Cliquez sur Suivant.

  8. Cliquez sur Suivant pour accepter le jeu d'autorisations FullTrust, puis cliquez sur Terminer.

  9. Fermez Configuration Microsoft .NET Framework 2.0.

Test de l'application

Maintenant, vous pouvez tester votre projet pour vous assurer que votre code s'exécute lorsque le classeur est ouvert.

Pour tester votre classeur

  1. Appuyez sur F5 pour exécuter votre projet.

  2. Vérifiez que le message s'affiche.

Voir aussi

Tâches

Comment : accorder des autorisations à des dossiers et des assemblys (Office System 2003)

Comment : supprimer des autorisations de dossiers ou d'assemblys (Office System 2003)

Concepts

Spécifications de sécurité pour exécuter des solutions Office (Office System 2003)

Meilleures pratiques pour la sécurité dans les solutions Office (Office System 2003)

Autres ressources

Sécurité dans les solutions Office (Office System 2003)