Nuget package updates

- WindowsFirewallHelper
This commit is contained in:
Brett Hewitson 2022-06-21 20:33:25 +10:00
parent 38691bc939
commit 4ac3fdc7d2
7 changed files with 22 additions and 20 deletions

View file

@ -22,7 +22,7 @@
<PackageReference Include="NLog" Version="4.7.2" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="TaskScheduler" Version="2.8.19" />
<PackageReference Include="WindowsFirewallHelper" Version="1.6.3.40" />
<PackageReference Include="WindowsFirewallHelper" Version="2.2.0.86" />
</ItemGroup>
<ItemGroup>
<Page Include="Controls\AnnotatedCheckBoxAndFloatSlider.xaml" />

View file

@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using WindowsFirewallHelper;
using WindowsFirewallHelper.FirewallAPIv2.Rules;
using WindowsFirewallHelper.FirewallRules;
/*
WindowsFirewallHelper
@ -39,12 +39,12 @@ namespace ServerManagerTool.Common.Utils
/// </summary>
public static class FirewallUtils
{
public static bool CreateFirewallRules(string exeName, List<int> ports, string ruleName, string description = "")
public static bool CreateFirewallRules(string exeName, List<int> ports, string ruleName, string description = "", string group = "")
{
var firewallManager = FirewallManager.Instance;
if (firewallManager.IsSupported)
if (FirewallWAS.IsSupported(new COMTypeResolver()))
{
var firewallManager = FirewallManager.Instance;
DeleteFirewallRules(exeName);
// create the TCP rule
@ -54,10 +54,11 @@ namespace ServerManagerTool.Common.Utils
rule.Direction = FirewallDirection.Inbound;
rule.IsEnable = true;
rule.LocalPorts = ports.Select(p => (ushort)p).ToArray();
if (rule is StandardRule)
if (rule is FirewallWASRule wasRule)
{
((StandardRule)rule).Description = description;
wasRule.Description = description;
wasRule.Grouping = group;
}
firewallManager.Rules.Add(rule);
}
@ -70,9 +71,10 @@ namespace ServerManagerTool.Common.Utils
rule.IsEnable = true;
rule.LocalPorts = ports.Select(p => (ushort)p).ToArray();
if (rule is StandardRule)
if (rule is FirewallWASRule wasRule)
{
((StandardRule)rule).Description = description;
wasRule.Description = description;
wasRule.Grouping = group;
}
firewallManager.Rules.Add(rule);
}
@ -85,12 +87,12 @@ namespace ServerManagerTool.Common.Utils
public static bool DeleteFirewallRules(string exeName)
{
var firewallManager = FirewallManager.Instance;
if (firewallManager.IsSupported)
if (FirewallWAS.IsSupported(new COMTypeResolver()))
{
var firewallManager = FirewallManager.Instance;
// check for existing rules
var rulesToDelete = firewallManager.Rules.Cast<StandardRule>().Where(r => !string.IsNullOrWhiteSpace(r.ApplicationName) && r.ApplicationName.Equals(exeName, StringComparison.OrdinalIgnoreCase)).ToList();
var rulesToDelete = firewallManager.Rules.Cast<IFirewallRule>().Where(r => !string.IsNullOrWhiteSpace(r.ApplicationName) && r.ApplicationName.Equals(exeName, StringComparison.OrdinalIgnoreCase)).ToList();
if (rulesToDelete != null && rulesToDelete.Count > 0)
{