Sécurité d’accès du code pour les applications ClickOnceCode access security for ClickOnce applications

Les applications ClickOnce sont basées sur le .NET Framework et sont soumises à des contraintes de sécurité d’accès du code.ClickOnce applications are based on the .NET Framework and are subject to code access security constraints. 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.For this reason, it is important that you understand the implications of code access security and write your ClickOnce applications accordingly.

La sécurité d'accès du code est un mécanisme dans .NET Framework qui permet de limiter l'accès du code aux ressources et aux opérations protégées.Code access security is a mechanism in the .NET Framework that helps limit the access that code has to protected resources and operations. Vous devez configurer les autorisations de sécurité d'accès du code pour votre application ClickOnce afin d'utiliser la zone appropriée pour l'emplacement du programme d'installation de l'application.You should configure the code access security permissions for your ClickOnce application to use the zone appropriate for the location of the application installer. Dans la plupart des cas, vous pouvez choisir la zone Internet pour un jeu d'autorisations limité ou la zone Intranet local pour un jeu d'autorisations plus complet.In most cases, you can choose the Internet zone for a limited set of permissions or the Local Intranet zone for a greater set of permissions.

Sécurité d’accès du code ClickOnce par défautDefault ClickOnce code access security

Par défaut, une application ClickOnce reçoit des autorisations Confiance totale quand elle est installée ou exécutée sur un ordinateur client.By default, a ClickOnce application receives Full Trust permissions when it is installed or run on a client computer.

  • Une application ayant des autorisations Confiance totale dispose d'un accès illimité aux ressources, telles que le système de fichiers et le Registre.An application that has Full Trust permissions has unrestricted access to resources such as the file system and the registry. Cela signifie que votre application, ainsi que le système de l'utilisateur final, peuvent être potentiellement exploités par du code malveillant.This potentially allows your application (and the end user's system) to be exploited by malicious code.

  • Quand une application nécessite des autorisations Confiance totale, l'utilisateur final peut être invité à accorder des autorisations à l'application.When an application requires Full Trust permissions, the end user may be prompted to grant permissions to the application. Cela signifie que l'application n'est pas réellement une application ClickOnce et que l'invite peut porter à confusion pour les utilisateurs moins expérimentés.This means that the application does not truly provide a ClickOnce experience, and the prompt can potentially be confusing to less experienced users.

    Note

    Lors de l'installation d'une application à partir d'un média amovible, tel qu'un CD-ROM, l'utilisateur ne reçoit pas d'invite.When installing an application from removable media such as a CD-ROM, the user is not prompted. En outre, un administrateur réseau peut configurer la stratégie réseau pour que les utilisateurs ne reçoivent pas d'invite quand ils installent une application provenant d'une source approuvée.In addition, a network administrator can configure network policy so that users are not prompted when they install an application from a trusted source. Pour plus d’informations, consultez Vue d’ensemble du déploiement d’applications approuvées.For more information, see Trusted application deployment overview.

    Pour restreindre les autorisations accordées à une application ClickOnce, vous pouvez modifier les autorisations de sécurité d'accès du code de votre application afin de demander la zone la plus appropriée aux autorisations que votre application nécessite.To restrict the permissions for a ClickOnce application, you can modify the code access security permissions for your application to request the zone that best fits the permissions that your application requires. Dans la plupart des cas, vous pouvez choisir la zone à partir de laquelle l'application est déployée.In most cases, you can select the zone from which the application is being deployed. Par exemple, si votre application est une application d'entreprise, utilisez la zone Intranet local .For example, if your application is an enterprise application, you can use the Local Intranet zone. S'il s'agit d'une application Internet, utilisez la zone Internet .If your application is an internet application, you can use the Internet zone.

Configurer les autorisations de sécuritéConfigure security permissions

Vous devez toujours configurer votre application ClickOnce pour demander la zone permettant de limiter les autorisations de sécurité d'accès du code.You should always configure your ClickOnce application to request the appropriate zone to limit the code access security permissions. Vous pouvez définir les autorisations de sécurité dans la page Sécurité du Concepteur de projets.You can configure security permissions on the Security page of the Project Designer.

La page Sécurité du Concepteur de projets contient une case à cocher Activer les paramètres de sécurité ClickOnce .The Security page in the Project Designer contains an Enable ClickOnce Security Settings check box. Quand cette case est cochée, les demandes d'autorisation de sécurité sont ajoutées au manifeste de déploiement de votre application.When this check box is selected, security permission requests are added to the deployment manifest for your 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.At installation time, the user will be prompted to grant permissions if the requested permissions exceed the default permissions for the zone from which the application is deployed. Pour plus d'informations, voir Procédure : Activer les paramètres de sécurité ClickOnce.For more information, see How to: Enable ClickOnce security settings.

Différents niveaux d'autorisations sont accordés, sans demande de confirmation, à des applications déployées à partir d'emplacements différents.Applications deployed from different locations are granted different levels of permissions without prompting. Par exemple, quand une application est déployée à partir d'Internet, elle reçoit un jeu d'autorisations très restrictif.For example, when an application is deployed from the Internet, it receives a highly restrictive set of permissions. Si elle est installée à partir d'un intranet local, elle reçoit des autorisations plus larges. Si elle est installée à partir d'un CD-ROM, elle reçoit des autorisations Confiance totale.When installed from a local Intranet, it receives more permissions, and when installed from a CD-ROM, it receives Full Trust permissions.

Pour définir des autorisations, commencez par choisir une zone de sécurité dans la liste Zone de la page Sécurité .As a starting point for configuring permissions, you can select a security zone from the Zone list on the Security page. Si vous comptez déployer votre application à partir de plusieurs zones, choisissez la zone avec le moins d'autorisations.If your application will potentially be deployed from more than one zone, select the zone with the least permissions. Pour plus d'informations, voir Procédure : Définir une zone de sécurité pour une application ClickOnce.For more information, see How to: Set a security zone for a ClickOnce application.

Les propriétés qui peuvent être définies varient selon le jeu d'autorisations, mais tous les jeux d'autorisations ne possèdent pas des propriétés configurables.The properties that can be set vary by permission set; not all permission sets have configurable properties. Pour plus d'informations sur la liste complète des autorisations que votre application peut demander, consultez System.Security.Permissions.For more information about the full list of permissions that your application can request, see System.Security.Permissions. Pour plus d’informations sur la façon de définir des autorisations pour une zone personnalisée, consultez Comment : Définir des autorisations personnalisées pour une application ClickOnce.For more information about how to set permissions for a custom zone, see How to: Set custom permissions for a ClickOnce application.

Déboguer une application qui a des autorisations restreintesDebug an application that has restricted permissions

En tant que développeur, vous utilisez très probablement votre ordinateur de développement avec les autorisations Confiance totale.As a developer, you most likely run your development computer with Full Trust permissions. Par conséquent, vous ne voyez pas apparaître les mêmes exceptions de sécurité lors du débogage de l'application que celles pouvant être rencontrées par les utilisateurs qui exécutent l'application avec des autorisations restreintes.Therefore, you do not see the same security exceptions when you debug the application that users may see when they run it with restricted permissions.

Pour intercepter ces exceptions, vous devez déboguer l'application avec les mêmes autorisations que l'utilisateur final.In order to catch these exceptions, you have to debug the application with the same permissions as the end user. Le débogage avec des autorisations restreintes peut être activé dans la page Sécurité du Concepteur de projets.Debugging with restricted permissions can be enabled on the Security page of the Project Designer.

Quand vous déboguez une application avec des autorisations restreintes, des exceptions sont levées pour toutes les demandes de sécurité de code qui n'ont pas été activées dans la page Sécurité .When you debug an application with restricted permissions, exceptions will be raised for any code security demands that have not been enabled on the Security page. Un programme d'assistance de l'exception affiche alors des suggestions de modification de votre code pour empêcher l'exception.An exception helper will appear, providing suggestions about how to modify your code to prevent the exception.

De plus, lors de l’écriture du code, la fonctionnalité IntelliSense de 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.In addition, when you write code, the IntelliSense feature in the Code Editor will disable any members that are not included in the security permissions that you have configured.

Pour plus d'informations, voir Procédure : Déboguer une application ClickOnce avec des autorisations restreintes.For more information, see How to: Debug a ClickOnce Application with Restricted Permissions.

Autorisations de sécurité pour les applications hébergées dans un navigateurSecurity permissions for browser-hosted applications

Visual Studio fournit les types de projets suivants pour les applications Windows Presentation Foundation (WPF) :Visual Studio provides the following project types for Windows Presentation Foundation (WPF) applications:

  • Application de fenêtres WPFWPF Windows Application

  • Application de navigateur web WPFWPF Web Browser Application

  • Bibliothèque de contrôles personnalisés WPFWPF Custom Control Library

  • Bibliothèque de services WPFWPF Service Library

    Parmi ces types de projets, 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é particuliers.Of these project types, only WPF Web Browser Applications are hosted in a Web browser and therefore require special deployment and security settings. Les paramètres de sécurité par défaut de ces applications sont les suivants :The default security settings for these applications are as follows:

  • Activer les paramètres de sécurité ClickOnceEnable ClickOnce Security Settings

  • Il s'agit d'une application de confiance partielleThis is a partial trust application

  • Zone Internet (avec le jeu d'autorisations par défaut pour les applications de navigateur web WPF sélectionnées)Internet zone (with default permission set for WPF Web Browser Applications selected)

    Dans la boîte de dialogue Paramètres de sécurité avancés , la case à cocher Déboguer cette application à l'aide du jeu d'autorisations sélectionné est cochée et désactivée.In the Advanced Security Settings dialog box, the Debug this application with the selected permission set check box is selected and disabled. En effet, le débogage par zone ne peut pas être désactivé pour les applications hébergées dans un navigateur.This is because Debug In Zone cannot be turned off for browser-hosted applications.

Voir aussiSee also