Programmatische eine Anwendung auf Windows-Firewall hinzufügen
Andere Tipps
Nicht sicher, ob dies der beste Weg ist, aber laufen netsh sollte funktionieren:
netsh firewall hinzufügen allowedprogram C: \ MyApp \ MyApp.exe MeineAnw ENABLE
Ich denke, das Administratorrechte erfordert aber aus offensichtlichen Gründen:)
Edit: Ich weiß es einfach nicht genug über Clickonce wissen, ob Sie externe Programme durch laufen
.Es ist möglich, die Daten von der Firewall zugreifen, Blick auf den folgenden Artikeln.
Die eigentliche Frage ist, funktioniert die Clickonce-Sandbox diese Art von Zugriff erlaubt? Meine Vermutung wäre, dass es nicht. Vielleicht könnten Sie eine Webservice nutzen? (Weitere Informationen über die Datenzugriffsmethoden in Clickonce finden Sie unter Zugriff auf lokale und Remote-Daten in Clickonce Anwendungen )
Die Toten auf „eine Anwendung auf die Ausnahmeliste der Windows-Firewall hinzufügen“ können sich auf der Wayback Machine gefunden werden:
Unter der Annahme, wir Visual Studio Installer-> Setup-Projekt verwenden - Sie benötigen eine Installer-Klasse wie diese in einer Baugruppe, die installiert ist wird, und stellen Sie sicher, dass Sie eine benutzerdefinierte Aktion für den „Primary Output“ add in der Installationsphase .
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.IO;
using System.Diagnostics;
namespace YourNamespace
{
[RunInstaller(true)]
public class AddFirewallExceptionInstaller : Installer
{
protected override void OnAfterInstall(IDictionary savedState)
{
base.OnAfterInstall(savedState);
var path = Path.GetDirectoryName(Context.Parameters["assemblypath"]);
OpenFirewallForProgram(Path.Combine(path, "YourExe.exe"),
"Your program name for display");
}
private static void OpenFirewallForProgram(string exeFileName, string displayName)
{
var proc = Process.Start(
new ProcessStartInfo
{
FileName = "netsh",
Arguments =
string.Format(
"firewall add allowedprogram program=\"{0}\" name=\"{1}\" profile=\"ALL\"",
exeFileName, displayName),
WindowStyle = ProcessWindowStyle.Hidden
});
proc.WaitForExit();
}
}
}
Die Antwort ist, dass Sie nur vertrauenswürdige Software erlauben, mit Administratorrechten ausgeführt werden. Von Zeit zu Zeit hat einige Software-Admin-Rechte haben und sensible Änderungen an Ihrem System vornehmen. Genauso gut könnte man eine lesen nur Festplatte sonst ...
Diese Antwort könnte zu spät sein. Dies ist, was ich am Ende mit: