Comment : récupérer les informations de chaîne de requête dans une application ClickOnce en ligne

 

Date de publication : novembre 2016

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

La chaîne de requête est la partie d’une URL commençant par un point d’interrogation ( ?) qui contient des informations arbitraires sous la forme nom=valeur. Supposez que vous avez une application ClickOnce nommée WindowsApp1 que vous hébergez sur servername, et que vous souhaitez passer une valeur pour la variable username quand l’application démarre. Votre code peut ressembler à ce qui suit :

http://servername/WindowsApp1.application?username=joeuser

Les deux procédures suivantes montrent comment utiliser une application ClickOnce pour obtenir les informations de chaîne de requête.

System_CAPS_ICON_note.jpg Remarque

Vous pouvez passer des informations dans une chaîne de requête quand votre application est lancée uniquement à l’aide du protocole HTTP, au lieu d’utiliser un partage de fichiers ou le système de fichiers local.

La première procédure montre comment votre application ClickOnce peut utiliser un petit bloc de code pour lire ces valeurs au démarrage de l’application.

La procédure suivante montre comment configurer votre application ClickOnce à l’aide de MageUI.exe pour qu’elle accepte des paramètres de chaîne de requête. Vous devez effectuer ces opérations chaque fois que vous publiez votre application.

System_CAPS_ICON_note.jpg Remarque

Avant de décider d’activer cette fonctionnalité, consultez la section « Sécurité » plus loin dans cette rubrique.

Pour plus d’informations sur la façon de créer un déploiement ClickOnce à l’aide de Mage.exe ou MageUI.exe, consultez Walkthrough: Manually Deploying a ClickOnce Application.

System_CAPS_ICON_note.jpg Remarque

À compter du .NET Framework 3.5 SP1, vous pouvez passer des arguments de ligne de commande à une application ClickOnce hors connexion. Si vous souhaitez fournir des arguments à l’application, vous pouvez passer des paramètres au fichier de raccourci avec l’extension .APPREF-MS.

Pour obtenir des informations de chaîne de requête à partir d’une application ClickOnce

  1. Placez le code suivant dans votre projet. Pour que ce code fonctionne, vous devez avoir une référence à System.Web et ajouter des instructions using ou Imports pour System.Web, System.Collections.Specialized et System.Deployment.Application.

            private NameValueCollection GetQueryStringParameters()
            {
                NameValueCollection nameValueTable = new NameValueCollection();
    
                if (ApplicationDeployment.IsNetworkDeployed)
                {
                    string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
                    nameValueTable = HttpUtility.ParseQueryString(queryString);
                }
    
                return (nameValueTable);
            }
    

  2. Appelez la fonction précédemment définie pour récupérer un Dictionary des paramètres de chaîne de requête, indexés par nom.

Pour activer le transfert de chaînes de requête dans une application ClickOnce avec MageUI.exe

  1. Ouvrez l’invite de commandes .NET et tapez :

    MageUI  
    
    
  2. Dans le menu Fichier, sélectionnez Ouvrir et ouvrez le manifeste de déploiement pour votre application ClickOnce, c’est-à-dire le fichier se terminant par l’extension .application.

  3. Sélectionnez le panneau Options de déploiement dans la fenêtre de navigation de gauche, puis cochez la case Autoriser le transfert des paramètres d’URL vers l’application.

  4. Dans le menu Fichier, sélectionnez Enregistrer.

System_CAPS_ICON_note.jpg Remarque

Vous pouvez également activer le transfert des chaînes de requête dans Visual Studio. Cochez la case Autoriser le transfert des paramètres d’URL vers l’application, accessible en ouvrant les Propriétés du projet, en sélectionnant l’onglet Publier, en cliquant sur le bouton Options, puis en sélectionnant Manifestes.

Quand vous utilisez des paramètres de chaîne de requête, vous devez faire attention à la façon dont votre application est installée et activée. Si votre application est configurée pour s’installer sur l’ordinateur de l’utilisateur à partir du web ou d’un partage réseau, il est probable que l’utilisateur activera l’application une seule fois par le biais de l’URL. Après cela, il l’activera généralement à l’aide du raccourci dans le menu Démarrer. Ainsi, votre application est assurée de recevoir des arguments de chaîne de requête une seule fois pendant sa durée de vie. Si vous choisissez de stocker ces arguments sur l’ordinateur de l’utilisateur pour une utilisation ultérieure, vous devez les stocker de manière sûre et sécurisée.

Si votre application est uniquement en ligne, elle sera toujours activée par le biais d’une URL. Même dans ce cas, toutefois, votre application doit être écrite pour fonctionner correctement si les paramètres de chaîne de requête sont manquants ou endommagés.

Autorisez le transfert des paramètres d’URL à votre application ClickOnce uniquement si vous envisagez de nettoyer l’entrée de caractères malveillants avant de l’utiliser. Une chaîne incorporée avec des guillemets, des barres obliques ou des points-virgules, par exemple, peut effectuer des opérations de données arbitraires si elle est utilisée sans filtre dans une requête SQL sur une base de données. Pour plus d’informations sur la sécurité des chaînes de requête, consultez Script Exploits Overview.

Sécurisation des applications ClickOnce

Afficher: