Jak: pobieranie informacji ciąg kwerendy w aplikacji Online ClickOnce

Ciąg kwerendy jest częścią adres URL rozpoczynający się od znaku zapytania (?), który zawiera dowolnych informacji w formie nazwa = wartość.Załóżmy, że masz ClickOnce aplikacji o nazwie WindowsApp1 , hosta na nazwa_serwera, i chcesz przekazać wartość zmiennej nazwa_użytkownika gdy aplikacja jest uruchamiana.Adres URL może wyglądać następująco:

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

Dwie następujące procedury przedstawiono sposoby używania ClickOnce aplikacji, aby uzyskać informacje ciągu kwerendy.

[!UWAGA]

Gdy aplikacja jest uruchamiany przy użyciu protokołu HTTP, zamiast korzystać z udziału pliku lub w lokalnym systemie plików, można tylko przekazywać informacje w ciągu kwerendy.

Pokazuje pierwszy procedury jak Twój ClickOnce aplikacji można użyć mały kawałek kodu do odczytu tych wartości, gdy aplikacja jest uruchamiana.

Następną procedurę pokazuje, jak skonfigurować Twoje ClickOnce aplikacji przy użyciu MageUI.exe, może akceptować parametry ciągu kwerendy.Należy to zrobić, w każdym przypadku, gdy opublikowanie aplikacji.

[!UWAGA]

Przed wprowadzeniem decyzji, aby włączyć tę funkcję, zobacz sekcję "Security" w dalszej części tego tematu.

Aby uzyskać informacje o sposobie tworzenia ClickOnce zobacz Wdrażanie przy użyciu Mage.exe lub MageUI.exe, Instruktaż: Ręcznie wdrażanie aplikacji ClickOnce.

[!UWAGA]

Począwszy od.NET Framework 3.5 z dodatkiem SP1 jest możliwe przekazywać argumenty wiersza polecenia do trybu offline ClickOnce aplikacji.Jeśli chcesz podać argumenty do aplikacji można przekazać parametrów do pliku skrótu.APPREF MS rozszerzenia.

Aby uzyskać informacje ciąg kwerendy z aplikacji ClickOnce

  1. Umieść następujący kod w projekcie.Aby ten kod do funkcji, trzeba będzie zawierać odwołanie do System.Web i dodać using lub Imports sprawozdań System.Web, System.Collections.Specialized i 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. Wywołać funkcję zdefiniowaną wcześniej, aby pobrać Dictionary z parametry ciągu kwerendy indeksowane przez nazwę.

Aby włączyć przekazywanie w aplikacji ClickOnce z MageUI.exe ciąg kwerendy

  1. Otwórz.NET wiersz polecenia i wpisz:

    MageUI
    
  2. Z pliku menu wybierz Otwórzi otworzyć manifest wdrażania sieci ClickOnce aplikacji, która jest plikiem kończącym się w .application rozszerzenie.

  3. Wybierz Opcje wdrażania panelu nawigacji po lewej stronie okna, a następnie wybierz URL umożliwia parametry przekazywane do aplikacji pole wyboru.

  4. Z pliku menu, wybierz opcję zapisać.

[!UWAGA]

Ewentualnie można włączyć przekazaniem w ciągu kwerendy Visual Studio.Wybierz URL umożliwia parametry przekazywane do aplikacji pole wyboru można znaleźć otwierając Właściwości projektu, wybierając Publikuj kartę, klikając przycisk Opcje przycisk, a następnie wybierając manifesty.

Stabilne programowanie

Gdy używane są parametry ciągu kwerendy, należy dokładnie rozważyć jak zainstalować i aktywować aplikacji.Jeśli aplikacja jest skonfigurowana do zainstalowania na komputerze użytkownika z sieci Web lub z udziału sieciowego, jest prawdopodobne, że użytkownik uaktywni aplikacji tylko raz przez adres URL.Po tym, użytkownik będzie zazwyczaj aktywacji aplikacji za pomocą skrótu w uruchomić menu.W efekcie aplikacja jest gwarantowane do odbierania argumenty ciąg kwerendy tylko raz w czasie jego istnienia.Jeśli wybierzesz opcję przechowywania tych argumentów na komputerze użytkownika do wykorzystania w przyszłości, jesteś odpowiedzialny za przechowywanie ich w bezpieczny sposób.

Jeśli aplikacja jest tylko online, zawsze zostaną uaktywnione za pomocą adresu URL.Nawet w tym przypadku jednak aplikacja musi być napisana działał poprawnie, jeśli parametry ciągu kwerendy lub są uszkodzone.

Zabezpieczenia

Zezwalaj na przekazywanie parametrów adresu URL do użytkownika ClickOnce aplikacji tylko wtedy, gdy planuje się czyszczenia wprowadzania znaków złośliwy przed jej użyciem.Ciąg osadzone cudzysłowy, kresek ułamkowych lub średnikami, na przykład, może być wykonywanie dowolnych danych operacji, jeśli używany bez filtrowania w kwerendzie SQL w bazie danych.Aby uzyskać więcej informacji dotyczących zabezpieczeń ciąg kwerendy, zobacz Script Exploits Overview.

Zobacz też

Koncepcje

Zabezpieczanie ClickOnce aplikacji