Partager via


Sécurité de l’accès au 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 au code. Pour cette raison, il est important de comprendre les implications de la sécurité de l’accès au code et d’écrire vos applications ClickOnce en conséquence.

La sécurité de l’accès au code est un mécanisme dans le .NET Framework qui permet de limiter l’accès dont le code a à protéger les ressources et les opérations. Vous devez configurer les autorisations de sécurité d’accès au code pour votre application ClickOnce afin d’utiliser la zone appropriée pour l’emplacement du programme d’installation de l’application. Dans la plupart des cas, vous pouvez choisir la zone Internet pour un ensemble limité d’autorisations ou la zone Intranet local pour un plus grand ensemble d’autorisations.

Remarque

Dans ClickOnce pour .NET Core et .NET 5 ou version ultérieure, la sécurité d’accès au code n’est pas prise en charge. Dans .NET Framework, l’utilisation de la sécurité d’accès au code n’est pas une bonne pratique et n’est pas recommandée.

Sécurité d’accès au code ClickOnce par défaut

Par défaut, une application ClickOnce reçoit des autorisations d’approbation totale lorsqu’elle est installée ou exécutée sur un ordinateur client.

  • Une application disposant d’autorisations de confiance totale a un accès illimité aux ressources telles que le système de fichiers et le Registre. Cela permet potentiellement à votre application (et au système de l’utilisateur final) d’être exploitée par du code malveillant.

  • Lorsqu’une application requiert des autorisations de confiance totale, l’utilisateur final peut être invité à accorder des autorisations à l’application. Cela signifie que l’application ne fournit pas vraiment d’expérience ClickOnce et que l’invite peut être déroutante pour les utilisateurs moins expérimentés.

    Remarque

    Lors de l’installation d’une application à partir d’un média amovible tel qu’un CD-ROM, l’utilisateur n’est pas invité. En outre, un administrateur réseau peut configurer la stratégie réseau afin que les utilisateurs ne soient pas invités lorsqu’ils installent une application à partir d’une source approuvée. Pour plus d’informations, consultez la vue d’ensemble du déploiement d’applications approuvées.

    Pour restreindre les autorisations d’une application ClickOnce, vous pouvez modifier les autorisations de sécurité d’accès au code pour votre application afin de demander la zone qui convient le mieux aux autorisations requises par votre application. Dans la plupart des cas, vous pouvez sélectionner la zone à partir de laquelle l’application est déployée. Par exemple, si votre application est une application d’entreprise, vous pouvez utiliser la zone Intranet local . Si votre application est une application Internet, vous pouvez utiliser la zone Internet .

Configurer les autorisations de sécurité

Vous devez toujours configurer votre application ClickOnce pour demander à la zone appropriée de limiter les autorisations de sécurité d’accès au code. Vous pouvez configurer des autorisations de sécurité sur 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 . Lorsque cette case à cocher est coché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 pour la zone à partir de laquelle l’application est déployée. Pour plus d’informations, consultez Guide pratique pour activer les paramètres de sécurité ClickOnce.

Les applications déployées depuis différents emplacements reçoivent différents niveaux d’autorisations sans avertissement. Par exemple, lorsqu’une application est déployée à partir d’Internet, elle reçoit un ensemble très restrictif d’autorisations. Lorsqu’il est installé à partir d’un intranet local, il reçoit plus d’autorisations et, lorsqu’il est installé à partir d’un CD-ROM, il reçoit des autorisations d’approbation totale.

En guise de point de départ pour la configuration des autorisations, vous pouvez sélectionner une zone de sécurité dans la liste des zones de la page Sécurité . Si votre application sera potentiellement déployée à partir de plusieurs zones, sélectionnez la zone avec les autorisations minimales. Pour plus d’informations, consultez Guide pratique pour définir une zone de sécurité pour une application ClickOnce.

Les propriétés qui peuvent être définies varient selon le jeu d’autorisations ; tous les jeux d’autorisations ne possèdent pas de propriétés configurables. Pour plus d’informations sur la liste complète des autorisations demandées par votre application, consultez System.Security.Permissions. Pour plus d’informations sur la définition d’autorisations pour une zone personnalisée, consultez Guide pratique pour définir des autorisations personnalisées pour une application ClickOnce.

Déboguer une application disposant d’autorisations restreintes

En tant que développeur, vous exécutez probablement votre ordinateur de développement avec des autorisations de confiance totale. Par conséquent, vous ne voyez pas les mêmes exceptions de sécurité lorsque vous déboguez l’application que les utilisateurs peuvent voir lorsqu’ils l’exécutent avec des autorisations restreintes.

Pour intercepter 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é sur la page Sécurité du Concepteur de projets.

Lorsque vous déboguez une application avec des autorisations restreintes, des exceptions sont déclenchées pour toutes les demandes de sécurité du code qui n’ont pas été activées sur la page Sécurité . Un assistant d’exception apparaîtra, fournissant des suggestions sur la façon de modifier votre code pour éviter l’exception.

En outre, lorsque vous écrivez du code, la fonctionnalité IntelliSense dans l’éditeur de code désactive tous les membres qui ne sont pas inclus dans les autorisations de sécurité que vous avez configurées.

Pour plus d’informations, consultez Guide pratique pour déboguer une application ClickOnce avec des autorisations restreintes.

Autorisations de sécurité pour les applications hébergées par navigateur

Visual Studio fournit les types de projets suivants pour les applications Windows Presentation Foundation (WPF) :

  • WPF Windows Application

  • Application de navigateur web WPF

  • Bibliothèque de contrôles personnalisés WPF

  • Bibliothèque de services WPF

    De ces types de projet, seules les applications de navigateur web WPF sont hébergées dans un navigateur web et nécessitent donc des paramètres de déploiement et de sécurité spéciaux. Les paramètres de sécurité par défaut pour ces applications sont les suivants :

  • Activer les paramètres de sécurité ClickOnce

  • Il s’agit d’une application d’approbation partielle

  • Zone Internet (avec l’ensemble d’autorisations par défaut pour les applications de navigateur web WPF sélectionnées)

    Dans la boîte de dialogue Paramètres de sécurité avancés, la case à cocher Déboguer cette application avec le jeu d’autorisations sélectionné est sélectionnée et désactivée. Cela est dû au fait que le débogage dans la zone ne peut pas être désactivé pour les applications hébergées par navigateur.