Cette documentation est archivée et n’est pas conservée.

Sécurité d'accès du code pour les applications ClickOnce

Les applications ClickOnce sont basées sur le .NET Framework et sont soumises à des contraintes de sécurité d'accès du code. Pour cette raison, il est important de comprendre les implications de la sécurité d'accès du code et d'écrire vos applications ClickOnce en conséquence.

La sécurité d'accès du code est un mécanisme du .NET Framework qui permet de limiter l'accès du code aux ressources et aux opérations protégées. Vous devez toujours configurer les autorisations de sécurité d'accès du code pour votre application ClickOnce afin de n'inclure que les autorisations requises par votre application. Visual Studio fournit les outils nécessaires pour déterminer et configurer le jeu d'autorisations de votre application.

Sécurité d'accès du code ClickOnce par défaut

Par défaut, une application ClickOnce reçoit des autorisations Confiance totale lorsqu'elle est installée ou exécutée sur un ordinateur client. Même s'il peut arriver que les autorisations Confiance totale soient réellement nécessaires, l'octroi d'autorisations Confiance totale n'est généralement pas conseillée pour deux raisons importantes :

  • Une application possédant des autorisations Confiance totale dispose d'un accès illimité aux ressources, telles que le système de fichiers et le Registre, autorisant ainsi potentiellement l'exploitation de votre application (et du système de l'utilisateur final) par du code malveillant.

  • Lorsqu'une application requiert des autorisations Confiance totale, l'utilisateur final est invité à accorder des autorisations à l'application ; cela signifie qu'elle n'est pas réellement une application ClickOnce et que l'invite peut éventuellement porter à confusion pour les utilisateurs moins expérimentés.

    RemarqueRemarque

    Lors de l'installation à partir d'un support amovible, tel qu'un CD-ROM, l'utilisateur ne reçoit pas d'invite. En outre, un administrateur réseau peut configurer la stratégie réseau afin que les utilisateurs ne reçoivent pas d'invite lors de l'installation d'une application provenant d'une source fiable. Pour plus d'informations, consultez Vue d'ensemble du déploiement d'applications approuvées.

Pour ces raisons, veillez à toujours modifier les autorisations de sécurité d'accès du code pour votre application afin de n'inclure que les autorisations requises par l'application. Visual Studio fournit les outils nécessaires pour déterminer et configurer le jeu d'autorisations de votre application.

Configuration des autorisations de sécurité

En règle générale, il est toujours conseillé de configurer votre application ClickOnce pour ne demander que les autorisations de sécurité d'accès du code dont elle a réellement besoin. Vous pouvez configurer des autorisations de protection dans la page Sécurité du Concepteur de projets.

La page Sécurité du Concepteur de projets contient une case à cocher Activer les paramètres de sécurité ClickOnce. Lorsqu'elle est activée, les demandes d'autorisation de sécurité sont ajoutées au manifeste de déploiement de votre application ; au moment de l'installation, l'utilisateur est invité à accorder des autorisations si les autorisations demandées dépassent les autorisations par défaut de la zone à partir de laquelle l'application est déployée. Pour plus d'informations, consultez Comment : activer les paramètres de sécurité ClickOnce.

Des niveaux d'autorisations différents sont accordés, sans demande de confirmation, à des applications déployées à partir d'emplacements différents. Par exemple, lorsqu'une application est déployée à partir d'Internet, elle reçoit un jeu d'autorisations très restrictif ; à partir d'un Intranet local, elle reçoit des autorisations supérieures ; et à partir d'un CD-ROM, elle reçoit des autorisations Confiance totale.

Comme point de départ pour la configuration des autorisations, vous pouvez sélectionner une zone de sécurité dans la liste déroulante Zone de la page Sécurité. Si votre application est éventuellement déployée à partir de plusieurs zones, il est conseillé de sélectionner la zone possédant le moins d'autorisations. Si vous souhaitez démarrer de rien et ajouter les autorisations nécessaires à votre application une par une, sélectionnez la zone Personnalisée.

Lorsqu'une zone est sélectionnée, la liste Autorisations est mise à jour pour afficher les autorisations par défaut de cette zone ; les autorisations incluses sont indiquées par une coche verte. Pour plus d'informations, consultez Comment : définir une zone de sécurité pour une application ClickOnce.

Pour limiter davantage les autorisations, vous pouvez sélectionner un jeu d'autorisations et modifier ses propriétés. Par exemple, si votre application doit afficher une boîte de dialogue Ouvrir, le jeu FileDialogPermission accorde le droit d'afficher des boîtes de dialogue. Par défaut, ce jeu d'autorisations autorise à la fois les boîtes de dialogue Ouvrir et Enregistrer. Pour modifier cela, vous devez sélectionner le jeu FileDialogPermission, cliquer sur le bouton Propriétés afin d'ouvrir une boîte de dialogue Paramètres des autorisations, puis affecter à l'autorisation la valeur Boîte de dialogue Ouvrir uniquement. Pour plus d'informations, consultez Comment : définir des autorisations personnalisées pour une application ClickOnce.

RemarqueRemarque

Les propriétés qui peuvent être définies varient selon le jeu d'autorisations ; tous les jeux d'autorisations ne possèdent pas des propriétés configurables.

Vous pouvez également exclure les jeux d'autorisations dont vous n'avez pas besoin ou activer les autorisations qui ne font pas partie des autorisations par défaut d'une zone en choisissant une valeur dans la liste déroulante Paramètre du jeu d'autorisations. Les autorisations qui ont été modifiées sont affichées en texte gras ; si une autorisation est activée et ne fait pas partie des paramètres par défaut de la zone, une icône d'informations est ajoutée à côté de la coche Incluse.

RemarqueRemarque

L'activation d'autorisations qui ne font pas partie des paramètres par défaut d'une zone entraîne l'affichage de l'invite décrite ci-dessus, à l'intention de l'utilisateur. Lorsque vous activez des autorisations supplémentaires, vous devez toujours modifier le jeu d'autorisations afin de n'inclure que les autorisations dont vous avez réellement besoin.

Détermination des autorisations nécessaires à une application

Pour configurer efficacement les autorisations de sécurité, il peut être utile de savoir exactement de quelles autorisations votre application a besoin. Vous pouvez utiliser l'outil Permission Calculator, accessible à partir de la page Sécurité, pour analyser votre code et déterminer les autorisations exactes nécessaires à votre application.

RemarqueRemarque

Il existe des restrictions à l'outil Permission Calculator. Il exécute une analyse statique du code et ne peut pas déterminer les autorisations requises pour le code à liaison tardive ou pour les assemblys chargés de manière dynamique. De plus, si vous avez conçu votre application pour qu'elle modifie dynamiquement ses demandes d'autorisations quand elle s'exécute dans un environnement disposant d'autorisations moindres, l'outil signalera les autorisations maximales requises.

Lorsque l'outil a analysé votre application, tous les jeux d'autorisations requis prennent l'état Activé et sont affichés en texte gras ; si une autorisation activée ne fait pas partie des paramètres par défaut de la zone, elle est également signalée par une icône d'avertissement. Si vous souhaitez que l'invite ne s'affiche pas pour l'utilisateur final, lisez ces informations et recherchez s'il existe un moyen de modifier votre code afin que l'autorisation ne soit plus requise.

Pour plus d'informations, consultez Comment : déterminer les autorisations pour une application ClickOnce.

Débogage d'une application disposant d'autorisations restreintes

En tant que développeur, vous utilisez très probablement votre ordinateur de développement avec les autorisations Confiance totale. Par conséquent, vous ne constaterez pas les mêmes exceptions de sécurité lors du débogage de l'application que l'utilisateur final peut voir apparaître en cas d'exécution avec des autorisations restreintes.

Pour capturer ces exceptions, vous devez déboguer l'application avec les mêmes autorisations que l'utilisateur final. Le débogage avec des autorisations restreintes peut être activé dans la page Sécurité du Concepteur de projets.

Lors du débogage avec des autorisations restreintes, des exceptions sont levées pour toute demande de sécurité de code non activée dans la page Sécurité. Un programme d'assistance de l'exception s'affiche pour fournir des suggestions relatives à la modification de votre code afin d'empêcher l'exception.

En outre, lors de l'écriture du code, la fonctionnalité Intellisense de l'éditeur de code grise tous les membres qui ne sont pas inclus dans les autorisations de sécurité que vous avez configurées.

Pour plus d'informations, consultez Comment : déboguer une application ClickOnce avec des autorisations restreintes.

Voir aussi

Afficher: