Sdílet prostřednictvím


Postupy: Načtení informací o řetězec dotazu v aplikaci Online technologie ClickOnce

Řetězec dotazu je část adresy URL začínající otazníkem (?), obsahující libovolné informace ve formě název = hodnota. Předpokládejme, že máte aplikaci ClickOnce s názvem WindowsApp1, kterou provozujete na serveru servername a chcete předat hodnotu pro proměnnou username, když se spustí aplikace. Adresa URL může vypadat například následovně:

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

Následující dva postupy ukazují, jak používat aplikaci ClickOnce k získání informací řetězce dotazu.

Poznámka

V řetězci dotazu můžete informace předat pouze, pokud je aplikace spuštěna pomocí HTTP, místo použití sdílení souborů nebo místního systému souborů.

První procedura ukazuje, jak vaše aplikace ClickOnce může použít malou část kódu ke čtení těchto hodnot při spuštění aplikace.

Následující procedura ukazuje, jak nakonfigurovat váši aplikaci ClickOnce tak, aby mohla zpracovávat parametry řetězce dotazu pomocí MageUI.exe. Toto je třeba provést při každém publikování aplikace.

Poznámka

Prohlédněte si oddíl "Zabezpečení" dále v tomto tématu, před rozhodnutím o povolení této funkce.

Pro informace o tom jak vytvořit nasazení ClickOnce pomocí Mage.exe nebo MageUI.exe, navštivte Podrobné pokyny: Ruční nasazení aplikace ClickOnce.

Poznámka

Počínaje.NET Framework 3.5 SP1 je možné předat argumenty příkazového řádku offline ClickOnce aplikace. Pokud chcete zadat argumenty aplikace, můžete předat v parametrech místní soubor s.Rozšíření APPREF MS.

Chcete-li získat informace řetězce dotazu z aplikace ClickOnce

  1. Umístěte následující kód do projektu. Chcete-li, aby tento kód fungoval, budete muset mít odkaz na System.Web a přidat příkazy using nebo Imports pro System.Web, System.Web, System.Collections.Specialized a System.Deployment.Application.

    Private Function GetQueryStringParameters() As NameValueCollection
        Dim NameValueTable As New NameValueCollection()
    
        If (ApplicationDeployment.IsNetworkDeployed) Then
            Dim QueryString As String = ApplicationDeployment.CurrentDeployment.ActivationUri.Query
            NameValueTable = HttpUtility.ParseQueryString(QueryString)
        End If
    
        GetQueryStringParameters = NameValueTable
    End Function
    
    private NameValueCollection GetQueryStringParameters()
    {
        NameValueCollection nameValueTable = new NameValueCollection();
    
        if (ApplicationDeployment.IsNetworkDeployed)
        {
            string queryString = ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
            nameValueTable = HttpUtility.ParseQueryString(queryString);
        }
    
        return (nameValueTable);
    }
    
  2. Volejte dříve definovanou funkci pro načtení Dictionary parametrů řetězece dotazů, indexovaných podle názvu.

Chcete-li povolit předávání řetězce dotazů v aplikaci ClickOnce s MageUI.exe

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

    MageUI
    
  2. Z nabídky Soubor zvolte Otevřít a otevřete manifest nasazení pro Vaši aplikaci ClickOnce, což je soubor končící příponou .application.

  3. Zvolte panel Možnosti Nasazení v levém navigačním okně a zvolte zaškrtávací políčko Povolit předávání URL parametrů aplikaci.

  4. Z nabídky Soubor zvolte Uložit.

Poznámka

Alternativně můžete povolit předávání řetězce dotazů v Visual Studio. Zvolte zaškrtávací políčko Povolit předávání URL parametrů aplikaci, které lze najít otevřením Vlastností projektu, výbráním karty Publikovat, kliknutím na Vlastnosti a výběrem Manifesty.

Robustní programování

Při použití parametrů řetězeců dotazů, musíte pozorně posoudit způsob nainstalování a aktivace aplikace. Pokud je Vaše aplikace nakonfigurována tak, aby se instalovala do počítače uživatele z webu nebo ze síťového sdílení, je pravděpodobné, že uživatel aktivuje aplikaci pouze jednou prostřednictvím adresy URL. Poté uživatel obvykle aktivuje aplikaci pomocí zástupce v nabídce Start. V důsledku toho je zaručen příjem argumentů řetězce dotazů aplikace pouze jednou během její doby života. Pokud se rozhodnete uložit tyto argumenty na počítači uživatele pro budoucí použití, zodpovídáte za jejich ukložení bezpečným a zabezpečeným způsobem.

Pokud je aplikace pouze v režimu online, bude vždy aktivována prostřednictvím adresy URL. I v tomto případě však aplikace musí být napsána, aby fungovala správně, pokud parametry řetězce dotazů chybí nebo jsou poškozené.

Zabezpečení

Povolte předávání parametrů URL vaší aplikaci ClickOnce pouze, pokud máte v úmyslu čistit vstup od všech škodlivých znaků před jeho použitím. Řetězec vložený s nabídkami, lomítky nebo středníky, by mohl provádět libovolné operace s daty, pokud by byl použit nefiltrovaný jako příkaz jazyka SQL proti databázi. Další informace o zabezpečení řetězců dotazů naleznete v tématu Přehled zneužití skriptů.

Viz také

Koncepty

Zabezpečení aplikací ClickOnce