Cómo: Recuperar información de la cadena de consulta de una aplicación ClickOnce en línea

La cadena de consulta es la parte de una dirección URL que empieza con un signo de interrogación (?) y contiene información arbitraria con el formato nombre=valor. Supongamos que tiene una aplicación ClickOnce denominada WindowsApp1 hospedada en nombreServidor, y que desea pasar un valor para la variable nombre de usuario al iniciarse la aplicación. La dirección URL podría tener el aspecto siguiente:

http://nombreServidor/WindowsApp1.application?nombre de usuario=usuario

En los dos procedimientos siguientes se muestra cómo usar una aplicación ClickOnce para obtener información de la cadena de consulta.

NotaNota

Solo puede pasar información en una cadena de consulta cuando su aplicación se inicia mediante HTTP, en lugar de usar un recurso compartido de archivos o el sistema de archivos local.

En el primer procedimiento se muestra cómo la aplicación ClickOnce puede usar un fragmento de código para leer estos valores cuando se inicializa la aplicación.

En el siguiente procedimiento se muestra cómo configurar la aplicación ClickOnce mediante MageUI.exe para que pueda aceptar parámetros de cadena de consulta. Será necesario realizar esta operación cada vez que publique la aplicación.

NotaNota

Consulte la sección Seguridad antes de decidir si desea habilitar esta característica.

Para obtener información sobre cómo crear una implementación ClickOnce mediante Mage.exe o MageUI.exe, vea Tutorial: Implementar manualmente una aplicación ClickOnce.

NotaNota

A partir de .NET Framework 3.5 SP1, es posible pasar argumentos de la línea de comandos a una aplicación de ClickOnce sin conexión.Si desea proporcionar argumentos a la aplicación, puede pasar parámetros al archivo de acceso directo con la extensión .APPREF-MS.

Para obtener información sobre la cadena de consulta de una aplicación ClickOnce

  1. Coloque el código siguiente en el proyecto. Para que este código funcione, deberá tener una referencia a System.Web y agregar instrucciones using o Imports para System.Web, System.Collections.Specialized y 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. Llame a la función previamente definida para recuperar una propiedad Dictionary de los parámetros de cadena de consulta, indizada por nombre.

Para habilitar el paso de una cadena de consulta en una aplicación ClickOnce con MageUI.exe

  1. Abra el símbolo del sistema .NET y escriba:

    MageUI
    
  2. En el menú Archivo, seleccione Abrir y abra el manifiesto de implementación de la aplicación ClickOnce, que es el archivo que finaliza con la extensión .application.

  3. Seleccione el panel Opciones de implementación en la ventana de navegación izquierda y active la casilla Permitir que se pasen los parámetros de la dirección URL a la aplicación.

  4. En el menú Archivo, seleccione Guardar.

NotaNota

Como alternativa, puede habilitar el paso de una cadena de consulta en Visual Studio.Active la casilla Permitir que se pasen los parámetros de la dirección URL a la aplicación. Para encontrarla, abra Propiedades del proyecto, seleccione la pestaña Publicar, haga clic en el botón Opciones y, a continuación, seleccione Manifiestos.

Programación eficaz

Al utilizar los parámetros de cadena de consulta, debe ponderar cuidadosamente cómo se instala y activa la aplicación. Si la aplicación está configurada para instalarse en el equipo del usuario desde el sitio Web o desde un recurso compartido de red, es probable que el usuario sólo active una vez la aplicación a través de la dirección URL. Después de eso, el usuario activará normalmente la aplicación mediante el acceso directo del menú Inicio. Como resultado, se garantiza que la aplicación sólo recibirá una vez los argumentos de cadena de consulta durante su período de duración. Si decide almacenar estos argumentos en el equipo del usuario para el uso futuro, es responsable de almacenarlos de forma segura.

Si la aplicación sólo se ejecuta en línea, siempre se activará a través de una dirección URL. No obstante, incluso en este caso, debe escribir la aplicación de manera que funcione correctamente si los parámetros de cadena de consulta faltan o están dañados.

Seguridad

Permita que se pasen parámetros URL a la aplicación ClickOnce solo si prevé limpiar la entrada de cualquier carácter malintencionado antes de usarla. Se puede incrustar una cadena con signos de comillas, barras o punto y coma, por ejemplo, para realizar operaciones de datos arbitrarios si se utilizan sin filtrar en una consulta SQL de una base de datos. Para obtener más información acerca de la seguridad de las cadenas de consulta, vea Script Exploits Overview.

Vea también

Conceptos

Proteger las aplicaciones ClickOnce