Gewusst wie: Abrufen von Abfragezeichenfolgen-Informationen in einer ClickOnce-Anwendung
Aktualisiert: November 2007
Die Abfragezeichenfolge ist der Teil eines URL, der mit einem Fragezeichen (?) beginnt und beliebige Informationen im Format name=value enthält. Angenommen, Sie hosten eine ClickOnce-Anwendung mit dem Namen WindowsApp1 auf servername und möchten beim Start der Anwendung einen Wert für die Variable username übergeben. Der URL kann wie folgt aussehen:
https://servername/WindowsApp1.application?username=joeuser
In den beiden folgenden Verfahren wird eine ClickOnce-Anwendung verwendet, um Abfragezeichenfolgen-Informationen abzurufen.
Im ersten Verfahren wird die ClickOnce-Anwendung mit MageUI.exe so konfiguriert, dass sie Abfragezeichenfolgen-Parameter annehmen kann.
Hinweis: |
---|
Lesen Sie den Abschnitt "Sicherheit" weiter unten in diesem Thema, bevor Sie sich für oder gegen die Aktivierung dieses Features entscheiden. |
Im nächsten Verfahren verwendet die ClickOnce-Anwendung einen kurzen Codeabschnitt, um diese Werte beim ersten Start der Anwendung zu lesen.
Informationen zum Erstellen einer ClickOnce-Bereitstellung mit Mage.exe oder MageUI.exe finden Sie unter Exemplarische Vorgehensweise: Manuelles Bereitstellen einer ClickOnce-Anwendung.
Hinweis: |
---|
Es ist nicht möglich, Befehlszeilenargumente an eine ClickOnce-Anwendung zu übergeben. Wenn Sie Argumente an die Anwendung übergeben möchten, müssen Sie sie über das Web bereitstellen und Abfragezeichenfolgen-Parameter im URL übergeben. |
So aktivieren Sie die Übergabe der Abfragezeichenfolge in einer ClickOnce-Anwendung mit MageUI.exe
Öffnen Sie die .NET-Eingabeaufforderung, und geben Sie Folgendes ein:
MageUI
Wählen Sie im Menü Datei die Option Öffnen aus, und öffnen Sie das Bereitstellungsmanifest für die ClickOnce-Anwendung. Dabei handelt es sich um die Datei mit der Erweiterung .application.
Wählen Sie im linken Navigationsfenster den Bereich Bereitstellungsoptionen aus, und aktivieren Sie das Kontrollkästchen Übergeben von URL-Parametern an die Anwendung zulassen.
Klicken Sie im Menü Datei auf Speichern.
So rufen Sie Abfragezeichenfolgen-Informationen aus einer ClickOnce-Anwendung ab
Fügen Sie den folgenden Code an einer beliebigen Stelle im Projekt ein:
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); }
Rufen Sie die zuvor definierte Funktion zum Abrufen eines Dictionary mit nach Namen indizierten Abfragezeichenfolgen-Parametern auf.
Robuste Programmierung
Wenn Sie Abfragezeichenfolgen-Parameter verwenden, müssen Sie sorgfältig vorgehen und berücksichtigen, wie Ihre Anwendung installiert und aktiviert ist. Wenn Ihre Anwendung so konfiguriert ist, dass sie vom Web oder von einer Netzwerkfreigabe auf den Benutzercomputern installiert wird, ist es wahrscheinlich, dass Benutzer sie nur einmal über den URL aktivieren. Danach aktivieren die Benutzer die Anwendung normalerweise mit der Verknüpfung im Startmenü. Damit ist nur einmal während der Lebensdauer einer Anwendung garantiert, dass sie Abfragezeichenfolgenargumente erhält. Wenn Sie diese Argumente für die zukünftige Verwendung auf dem Computer des Benutzers speichern möchten, sind Sie für eine sichere und geschützte Speicherung verantwortlich.
Wenn die Anwendung nur online ist, wird sie immer über einen URL aktiviert. Aber auch in diesem Fall muss die Anwendung so geschrieben werden, dass sie einwandfrei funktioniert, wenn die Abfragezeichenfolgen-Parameter fehlen oder beschädigt sind.
Sicherheit
Lassen Sie die Übergabe von URL-Parametern an die ClickOnce-Anwendung nur zu, wenn Sie beabsichtigen, die Eingabe vor der Verwendung zu bereinigen, indem Sie ggf. nicht sichere Zeichen entfernen. So kann beispielsweise eine Zeichenfolge mit Anführungszeichen, Schrägstrichen oder Semikolons beliebige Datenvorgänge durchführen, wenn sie ungefiltert in einer SQL-Datenbankabfrage verwendet wird. Weitere Informationen zur Sicherheit von Abfragezeichenfolgen finden Sie unter Übersicht über Skriptangriffe.