Поделиться через


Практическое руководство. Извлечение сведений строки запроса в приложении ClickOnce

Обновлен: Ноябрь 2007

Строка запроса — это часть URL-адреса, начинающаяся со знака вопроса (?), в которой содержатся произвольные сведения в формате имя=значение. Предположим, что имеется приложение ClickOnce с именем WindowsApp1, которое размещается на имясервера, и требуется при запуске приложения передать значение для переменной имяпользователя. URL-адрес может выглядеть следующим образом.

http://имясервера/WindowsApp1.application?username=joeuser

В следующих двух процедурах показано, как использовать приложение ClickOnce для получения сведений строки запроса.

В первой процедуре показывается, как настроить приложение ClickOnce с помощью MageUI.exe, чтобы оно могло принимать параметры строки запроса.

ms172242.alert_note(ru-ru,VS.90).gifПримечание.

Прежде чем принять решение о необходимости включения этой функции, ознакомьтесь с разделом "Безопасность" далее в этой статье.

В следующей процедуре показывается, как приложение ClickOnce может использовать небольшой фрагмент кода для считывания этих значений при первом запуске приложения.

Сведения о создании развертывания ClickOnce с помощью Mage.exe или MageUI.exe см. в разделе Пошаговое руководство. Развертывание приложения ClickOnce вручную.

ms172242.alert_note(ru-ru,VS.90).gifПримечание.

В приложение ClickOnce невозможно передать аргументы командной строки. Если требуется передать аргументы в приложение, необходимо развернуть его через Интернет и передать параметры строки запроса в URL-адресе.

Чтобы включить передачу строки запроса в приложение ClickOnce с помощью MageUI.exe

  1. Откройте окно командной строки .NET и введите:

    MageUI
    
  2. В меню Файл выберите команду Открыть и откройте для используемого приложения ClickOnce манифест развертывания, который представляет собой файл с расширением .application.

  3. Выберите панель Параметры развертывания в левом окне навигации и установите флажок Разрешить передачу в приложение параметров URL-адреса.

  4. В меню Файл выберите команду Сохранить.

Чтобы получить сведения строки запроса из приложения ClickOnce

  1. Поместите куда-нибудь в свой проект следующий код:

    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. Вызовите функцию, определенную ранее, чтобы извлечь свойство Dictionary параметров строки запроса, индексируемых по имени.

Отказоустойчивость

При использовании параметров строки запроса необходимо тщательно проанализировать, как устанавливается и активируется приложение. Если приложение настроено для установки на пользовательском компьютере из Интернета или из общего сетевого ресурса, скорее всего пользователь будет активировать приложение только один раз с помощью URL-адреса. После этого пользователь обычно активирует приложение, используя ярлык в меню Пуск. В результате этого гарантируется, что приложение получит аргументы строки запроса только один раз в течение своего срока службы. Если выбрано хранение этих аргументов на компьютере пользователя для будущего использования, пользователь отвечает за их безопасное и надежное хранение.

Если приложение находится только в интерактивном режиме, оно всегда активируется через URL-адрес. Однако даже в этом случае приложение должно быть написано так, чтобы оно правильно функционировало, если параметры строки запроса отсутствуют или повреждены.

Безопасность

Разрешите передачу параметров URL-адреса в приложение ClickOnce только в том случае, если планируете очищать входные данные от любых знаков, вставленных со злым умыслом, до применения приложения. Например, строка, вставленная с кавычками, косыми чертами или точками с запятыми, может выполнять произвольные операции с данными, если используется нефильтрованной в SQL-запросе к базе данных. Дополнительные сведения о безопасности строки запроса см. в разделе Общие сведения об использовании сценариев.

См. также

Основные понятия

Развертывание и безопасность ClickOnce