Načtení informací řetězce dotazu do online aplikace ClickOnce

Řetězec dotazu je část adresy URL začínající otazníkem (?), která obsahuje libovolné informace ve formátu name=value. Předpokládejme, že máte aplikaci ClickOnce s názvem WindowsApp1 , kterou hostujete , servernamea chcete předat hodnotu proměnné username při spuštění aplikace. Vaše adresa URL může vypadat takto:

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

Následující dva postupy ukazují, jak pomocí aplikace ClickOnce získat informace o řetězci dotazu.

Poznámka:

Informace můžete předávat pouze v řetězci dotazu, když se aplikace spouští pomocí protokolu HTTP, místo použití sdílené složky nebo místního systému souborů.

První postup ukazuje, jak vaše aplikace ClickOnce může použít malý kód ke čtení těchto hodnot při spuštění aplikace.

Další postup ukazuje, jak nakonfigurovat aplikaci ClickOnce pomocí MageUI.exe, aby mohl přijímat parametry řetězce dotazu. To budete muset provést při každém publikování aplikace.

Poznámka:

Než se rozhodnete tuto funkci povolit, přečtěte si část Zabezpečení dále v tomto tématu.

Informace o vytvoření nasazení ClickOnce pomocí Mage.exe nebo MageUI.exe naleznete v tématu Návod: Ruční nasazení aplikace ClickOnce.

Poznámka:

Počínaje rozhraním .NET Framework 3.5 SP1 je možné předat argumenty příkazového řádku offline aplikaci ClickOnce. Pokud chcete do aplikace zadat argumenty, můžete předat parametry do souboru zástupce pomocí souboru . ROZŠÍŘENÍ APPREF-MS.

Získání informací o řetězci dotazu z aplikace ClickOnce

  1. Do projektu umístěte následující kód. Aby tento kód fungoval, budete muset mít odkaz na System.Web a přidat using nebo Imports direktivy pro System.Web, System.Collections.Specialized a System.Deployment.Application.

    Poznámka:

    Třída ApplicationDeployment a rozhraní API v System.Deployment.Application oboru názvů nejsou podporovány v .NET Core a .NET 5 a novějších verzích. V .NET 7 se podporuje nová metoda přístupu k vlastnostem nasazení aplikace. Další informace naleznete v tématu Access ClickOnce vlastnosti nasazení v .NET. .NET 7 nepodporuje ekvivalent metod ApplicationDeployment.

    private NameValueCollection GetQueryStringParameters()
    {
        NameValueCollection nameValueTable = new NameValueCollection();
    
        if (ApplicationDeployment.IsNetworkDeployed)
        {
            string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
            nameValueTable = HttpUtility.ParseQueryString(queryString);
        }
    
        return (nameValueTable);
    }
    
  2. Voláním funkce definované dříve načtěte Dictionary parametry řetězce dotazu indexované podle názvu.

Povolení předávání řetězce dotazu v aplikaci ClickOnce pomocí MageUI.exe

  1. Otevřete příkazový řádek .NET a zadejte:

    MageUI
    
  2. V nabídce Soubor vyberte Otevřít a otevřete manifest nasazení pro aplikaci ClickOnce, což je soubor končící příponou.application.

  3. V levém navigačním okně vyberte panel Možnosti nasazení a zaškrtněte políčko Povolit předání parametrů adresy URL do aplikace.

  4. V nabídce Soubor vyberte Uložit.

Poznámka:

Případně můžete povolit předávání řetězce dotazu v sadě Visual Studio. Zaškrtněte políčko Povolit předání parametrů adresy URL aplikaci, které lze najít otevřením vlastností projektu, výběrem karty Publikovat, kliknutím na tlačítko Možnosti a následným výběrem manifestů.

Poznámka:

V clickOnce pro .NET Core 3.1 a .NET 5 nebo novější nastavíte vlastnosti nasazení pomocí nástroje Publikovat místo průvodce publikováním a stránky Publikovat v Návrháři projektů. Další informace naleznete v tématu Nasazení aplikace .NET pro Windows pomocí Technologie ClickOnce a ClickOnce pro .NET.

Robustní programování

Při použití parametrů řetězce dotazu musíte pečlivě zvážit, jak je aplikace nainstalovaná a aktivovaná. Pokud je vaše aplikace nakonfigurovaná tak, aby se nainstalovala na počítač uživatele z webu nebo ze sdílené síťové složky, je pravděpodobné, že uživatel aplikaci aktivuje pouze jednou prostřednictvím adresy URL. Potom uživatel obvykle aktivuje vaši aplikaci pomocí zástupce v nabídce Start . V důsledku toho je zaručeno, že vaše aplikace bude přijímat argumenty řetězce dotazu pouze jednou během své životnosti. Pokud se rozhodnete tyto argumenty uložit na počítač uživatele pro budoucí použití, zodpovídáte za jejich bezpečné a bezpečné uložení.

Pokud je vaše aplikace jenom online, bude vždy aktivována prostřednictvím adresy URL. I v tomto případě je však nutné, aby aplikace správně fungovala, pokud chybí nebo jsou poškozené parametry řetězce dotazu.

zabezpečení v rozhraní .NET Framework

Povolte předávání parametrů adresy URL do aplikace ClickOnce jenom v případě, že chcete před použitím vyčistit vstup všech škodlivých znaků. Řetězec vložený pomocí uvozovek, lomítek nebo středníků může například provádět libovolné datové operace, pokud se v dotazu SQL na databázi používají nefiltrované. Další informace o zabezpečení řetězců dotazů najdete v tématu Přehled zneužití skriptů.