16 Stimmen

ClickOnce-Anwendungen und Windows-Firewall

Es scheint mir, dass ClickOnce-Anwendungen nicht reibungslos mit Windows-Firewall .

Ich verwende ClickOnce-Bereitstellungen bereits seit zwei Jahren erfolgreich. Jetzt, da das Unternehmen auf Windows 7 umgestiegen ist, gibt es einen Stolperstein. Die Konfiguration der einzelnen Benutzer hat sich geändert:

  • Die Windows-Firewall ist auf den Rechnern der einzelnen Benutzer aktiviert.
  • Die Benutzer haben keine Administratorrechte auf ihren Rechnern.

So funktioniert ClickOnce: Jedes Mal, wenn eine ClickOnce-Anwendung aktualisiert wird, wird die ausführbare Datei in ein neues Verzeichnis kopiert. Dieses Verzeichnis hat einen maschinengenerierten Namen. (Zum Beispiel könnte die Anwendung in " C:\Users\andrew.shepherd\AppData\Local\Apps\2.0\GTTG5EJB.AVG\jc69hir.e45\watershedclient.exe ").

Die Windows-Firewall blockiert standardmäßig Anwendungen, die eingehende Anrufe annehmen. Wenn die Anwendung dies jedoch zum ersten Mal versucht, zeigt die Windows-Firewall ein Dialogfeld an, das Folgendes erlaubt ein Verwalter um eine Ausnahme für die Anwendung zu machen und ihr die erforderlichen Privilegien zu gewähren.

Das Problem ist, dass die Windows-Firewall den Anwendungsdatensatz als vollständigen Dateipfad speichert. Jedes Mal, wenn eine ClickOnce-Anwendung aktualisiert wird, wird sie in einem anderen Verzeichnis installiert. Daher sieht die Windows-Firewall sie als eine völlig neue Anwendung an. Ein Administrator muss nun die Firewall für dieses Update für jeden Rechner konfigurieren, auf dem es aktualisiert wird. Damit wird der eigentliche Grund für den Einsatz der ClickOnce-Technologie zunichte gemacht.

Dies war als Problem gekennzeichnet im Jahr 2005, und Microsoft erkannte das Problem an und gab zu, dass es keine Lösung gab.

Wurde dieses Problem in Angriff genommen?

4voto

redcalx Punkte 7867

Das Problem ist, dass die Windows Firewall den Anwendungsdatensatz als vollständigen Dateipfad. Jedes Mal, wenn eine ClickOnce-Anwendung aktualisiert wird, wird in ein anderes Verzeichnis installiert. Daher sieht die Windows-Firewall sie als eine völlig neue Anwendung.

Eine Möglichkeit besteht darin, den Namen der Regel so zu ändern, dass er nur den Namen der EXE und nicht den vollständigen Pfad angibt. Meine lokal bereitgestellte Anwendung "Hello World" wurde z. B. von ClickOnce unter diesem Pfad installiert:

C:\Users\jdoe\AppData\Local\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\hell..tion_32be098505965508_0001.0000_ad51d60d7593998b\HelloWorld.exe

Und es kann eine Firewall-Regel verwendet werden, die nur für "HelloWorld.exe" gilt. Dies schafft jedoch eine Sicherheitslücke, da die Regel für jede Anwendung mit diesem Namen gilt. Wir können die Regel noch ein wenig verfeinern, indem wir einen Teil des Pfades angeben:

%LOCALAPPDATA%\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\*\HelloWorld.exe

Beachten Sie, dass ich auch eine Umgebungsvariable verwendet habe, die offensichtlich zum Testen der Firewall-Regel erweitert wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X