Como: recuperar informações de seqüência de caracteres de consulta em um aplicativo on-line ClickOnce

O seqüência de consulta é a parte de uma URL que comece com um ponto de interrogação (?) que contém informações arbitrárias no formulário nome = valor.Suponha que você tem um ClickOnce aplicativo chamado WindowsApp1 hospedados em servername, e você quiser passar um valor para a variável nome de usuário quando o aplicativo é iniciado.O URL pode parecer com o seguinte:

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

Dois procedimentos a seguir mostram como usar um ClickOnce aplicativo para obter informações de seqüência de caracteres de consulta.

ObservaçãoObservação

Você só pode passar as informações em uma seqüência de consulta quando seu aplicativo está sendo iniciado usando HTTP, em vez de usar um compartilhamento de arquivo ou sistema de arquivos local.

A primeiro procedimento mostra como o ClickOnce aplicativo pode usar um pequeno trecho de código para ler esses valores quando o aplicativo é iniciado.

O procedimento a seguir mostra como configurar seu ClickOnce aplicativo usando o MageUI.exe para que ele pode aceitar parâmetros de seqüência de caracteres de consulta.Você precisará fazer isso, sempre que você publique seu aplicativo.

ObservaçãoObservação

Antes de tomar uma decisão para ativar esse recurso, consulte a seção "Segurança" mais adiante neste tópico.

Para obter informações sobre como criar um ClickOnce implantação usando o Mage ou MageUI.exe, consulte Passo a passo: Manualmente implantando um aplicativo de ClickOnce.

ObservaçãoObservação

Iniciando no.NET Framework 3.5 SP1, é possível passar argumentos de linha de comando para um off-line ClickOnce aplicativo.Se você desejar fornecer argumentos para o aplicativo, você pode passar parâmetros para o arquivo de atalho com o.Extensão de MS-APPREF.

Para obter informações de seqüência de caracteres de consulta a partir de um aplicativo de ClickOnce

  1. Coloque o código a seguir em seu projeto.Em ordem para que este código para funcionar, você terá que ter uma referência a System. Web e adicionar using ou Imports instruções para System.Deployment.Application, System.Collections.Specialized e System. Web.

    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. Chamar a função definida anteriormente para recuperar um Dictionary os parâmetros de seqüência de caracteres de consulta, indexada pelo nome.

Para habilitar a cadeia de caracteres de consulta passando em um aplicativo de ClickOnce com MageUI.exe

  1. Abrir o.NET Prompt de comando e digite:

    MageUI
    
  2. Do arquivo menu, selecione Abrire abra o manifesto de implantação para seu ClickOnce aplicativo, que é o arquivo terminando com o . Application extensão.

  3. Selecione o Opções de implantação na janela de navegação do lado esquerdo do painel e selecione o URL permitir parâmetros a serem passados ao aplicativo caixa de seleção.

  4. Do arquivo menu, selecione Salvar.

ObservaçãoObservação

Como alternativa, você pode habilitar a cadeia de caracteres de consulta passando Visual Studio.Selecione o URL permitir parâmetros a serem passados ao aplicativo caixa de seleção, que pode ser encontrada abrindo o Propriedades do projeto, selecionando o Publicar guia, clicando no Opções botão e, em seguida, selecionando manifestos.

Programação robusta

Quando você usa os parâmetros de seqüência de caracteres de consulta, você deve dar atenção como o seu aplicativo é instalado e ativado.Se seu aplicativo estiver configurado para instalar no computador do usuário da Web ou de um compartilhamento de rede, é provável que o usuário ativará o aplicativo apenas uma vez, através da URL.Depois disso, o usuário normalmente ativar seu aplicativo usando o atalho do Iniciar menu.Como resultado, seu aplicativo é garantido para receber os argumentos de seqüência de caracteres de consulta somente uma vez durante sua existência.Se você optar por armazenar esses argumentos na máquina do usuário para uso futuro, você é responsável por armazená-los de maneira segura e protegida.

Se seu aplicativo só está on-line, ele sempre será ativado através de um URL.Mesmo nesse caso, Entretanto, seu aplicativo deve ser escrito para funcionar corretamente se os parâmetros de seqüência de caracteres de consulta estão ausentes ou corrompidos.

Segurança

Permitir a passagem de parâmetros de URL para seu ClickOnce aplicativo somente se você pretende limpar a entrada de quaisquer caracteres mal intencionados antes de usá-lo.Uma seqüência de caracteres incorporadas com cotações, barras ou ponto e vírgula, por exemplo, pode realizar a operações de dados arbitrários se usado sem um filtro em uma consulta SQL contra um banco de dados.Para obter mais informações sobre segurança de seqüência de caracteres de consulta, consulte Script Exploits Overview.

Consulte também

Conceitos

Proteção de aplicativos de ClickOnce