Gewusst wie: Abrufen von Abfragezeichenfolgen-Informationen in einer Online-ClickOnce-Anwendung
Die Abfragezeichenfolge ist der Teil einer URL, die 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.Die URL kann folgendermaßen lauten:
https://servername/WindowsApp1.application?username=joeuser
In den beiden folgenden Verfahren wird eine ClickOnce-Anwendung verwendet, um Abfragezeichenfolgen-Informationen abzurufen.
Hinweis |
---|
Sie können nur dann Informationen in einer Abfragezeichenfolge übergeben, wenn zum Starten der Anwendung keine Dateifreigabe und nicht das lokale Dateisystem, sondern HTTP verwendet wird. |
Im ersten Verfahren wird gezeigt, dass die ClickOnce Anwendung diese Werte mithilfe eines kleinen Codeabschnitts beim Anwendungsstart lesen kann.
Im nächsten Verfahren wird gezeigt, wie Sie die ClickOnce-Anwendung mit MageUI.exe so konfigurieren, dass sie Abfragezeichenfolgen-Parameter akzeptiert.Sie müssen dieses Verfahren bei jedem Veröffentlichen der Anwendung ausführen.
Hinweis |
---|
Lesen Sie den Abschnitt "Sicherheit" weiter unten in diesem Thema, bevor Sie sich für oder gegen die Aktivierung dieses Features entscheiden. |
Informationen zum Erstellen einer ClickOnce-Bereitstellung mit Mage.exe oder MageUI.exe finden Sie unter Exemplarische Vorgehensweise: Manuelles Bereitstellen einer ClickOnce-Anwendung.
Hinweis |
---|
Ab .NET Framework 3.5 SP1 können Befehlszeilenargumente an eine ClickOnce-Offlineanwendung übergeben werden.Wenn Sie Argumente für die Anwendung bereitstellen möchten, können Sie Parameter an die Verknüpfungsdatei mit der Erweiterung .APPREF-MS übergeben. |
So rufen Sie Abfragezeichenfolgen-Informationen aus einer ClickOnce-Anwendung ab
Fügen Sie den folgenden Code im Projekt ein.Für die ordnungsgemäße Ausführung dieses Codes ist ein Verweis auf System.Web erforderlich, und Sie müssen eine using-Anweisung oder eine Imports-Anweisung für System.Web, System.Collections.Specialized und System.Deployment.Application hinzufügen.
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.
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.
Hinweis |
---|
Alternativ können Sie das Übergeben von Abfragezeichenfolgen in Visual Studio aktivieren.Aktivieren Sie das Kontrollkästchen Übergeben von URL-Parametern an die Anwendung zulassen. Öffnen Sie hierzu Projekteigenschaften, wählen Sie die Registerkarte Veröffentlichen aus, klicken Sie auf die Schaltfläche Optionen, und wählen Sie dann Manifeste aus. |
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 die 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 eine 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 Script Exploits Overview.