Не могу добавить программу в исключения брандмауэра - C#

Узнай цену своей работы

Формулировка задачи:

using WindowsFirewallHelper;
using System.Reflection;
 
IRule rule = FirewallManager.Instance.CreateApplicationRule(FirewallManager.Instance.GetProfile().Type, AppName, FirewallAction.Allow, Assembly.GetExecutingAssembly().Location);
            rule.Direction = FirewallDirection.Outbound;
            FirewallManager.Instance.Rules.Add(rule);
 
            IRule rulePort = FirewallManager.Instance.CreatePortRule(FirewallManager.Instance.GetProfile().Type, AppName + " Port " + Nat0.Port.ToString(), FirewallAction.Allow, (ushort)Nat0.Port, FirewallProtocol.TCP);
            FirewallManager.Instance.Rules.Add(rulePort);
Правило добавляется, проверял через список
foreach (IRule qwe in FirewallManager.Instance.Rules.ToArray())
            {
                if (qwe.Name.IndexOf(AppName) >= 0)
                {
                    MessageBox.Show(qwe.Name);
                    //FirewallManager.Instance.Rules.Remove(qwe);
                }
            }
но почему то не работает... Когда я пытаюсь принять Tcp соединение, брандмауэр блокирует трафик ... (При выключенном брандмауэре трафик нормально проходит) 1) Подскажите мож есть другие работоспособные библиотеки?? (WindowsFirewallHelper) 2) И есть ли у кого то отказоустойчивая библиотека для проброса портов в NAT? (пользуюсь Mono.Nat, она бывает ошибки выкидывает вместо проброса портов)
посмотрел в список брандмауэра, у меня на против моего правила стоит галочка только в столбце частный, а в столбце публичный не стоит, как поставить с помощью этой библиотеке?
нашёл я что искал, нужно будет протестить
rule.Profiles = FirewallProfiles.Public | FirewallProfiles.Private;

Решение задачи: «Не могу добавить программу в исключения брандмауэра»

textual
Листинг программы
IRule rule = FirewallManager.Instance.CreateApplicationRule(FirewallManager.Instance.GetProfile().Type, AppName, FirewallAction.Allow, Assembly.GetExecutingAssembly().Location);
            rule.Profiles = FirewallProfiles.Public | FirewallProfiles.Private;
            FirewallManager.Instance.Rules.Add(rule);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы