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

Actualización: noviembre 2007

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 en la forma nombre=valor. Supongamos que tiene una aplicación ClickOnce denominada WindowsApp1 alojada en servername, y que desea pasar un valor para la variable username al iniciar la aplicación. La dirección URL podría tener el siguiente aspecto:

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

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

En el primer procedimiento se muestra cómo configurar la aplicación ClickOnce mediante MageUI.exe para que pueda aceptar parámetros de cadena de consulta.

Nota:

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

En el procedimiento siguiente se muestra cómo la aplicación ClickOnce puede utilizar un fragmento de código para leer estos valores la primera vez que se inicializa la aplicación.

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.

Nota:

No es posible pasar los argumentos de la línea de comandos a una aplicación ClickOnce. Si desea proporcionar argumentos a la aplicación, debe implementarlos a través de Web y proporcionar parámetros de cadena de consulta en la dirección URL.

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 exploración izquierda y active la casilla de verificación denominada Permitir que se pasen los parámetros de la dirección URL a la aplicación.

  4. En el menú Archivo, seleccione Guardar.

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

  1. Coloque el código siguiente en cualquier lugar del proyecto:

    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.

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

Sólo permita que se pasen parámetros URL a la aplicación ClickOnce si prevé limpiar la entrada de cualquier carácter malintencionado antes de utilizarla. 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 Información general sobre los ataques mediante secuencias de comandos.

Vea también

Conceptos

Implementación y seguridad con ClickOnce