【问题标题】:c# Firewall rule multi profilec# 防火墙规则多配置文件
【发布时间】:2019-03-24 23:55:59
【问题描述】:

如何在 c# 中为所有人设置防火墙规则? 我尝试仅设置域或私有,并且效果很好。但是对于所有代码,它都不起作用。 我使用来自 GitHub 的代码,这个解决方案 https://github.com/falahati/WindowsFirewallHelper

部分代码:

  var rule = FirewallManager.Instance.CreateApplicationRule(FirewallManager.Instance.GetProfile(FirewallProfiles.All).Type, @"MyApp Rule", FirewallAction.Allow, @"C:\MyApp.exe");
  rule.Direction = FirewallDirection.Inbound;
  FirewallManager.Instance.Rules.Add(rule);

  [Flags]
  public enum FirewallProfiles
  {
     Domain = NET_FW_PROFILE_TYPE2.NET_FW_PROFILE2_DOMAIN,
     Private = NET_FW_PROFILE_TYPE2.NET_FW_PROFILE2_PRIVATE,
     Public = NET_FW_PROFILE_TYPE2.NET_FW_PROFILE2_PUBLIC,
     All=NET_FW_PROFILE_TYPE2.NET_FW_PROFILE2_ALL
  }

我抓住了exception =FirewallLegacyNotSupportedException

【问题讨论】:

    标签: c#


    【解决方案1】:

    您无法获取所有配置文件的配置文件。高级安全 Windows 防火墙 (Vista+) 中没有 All 配置文件。这个库只是 Windows 防火墙 COM API 的一个包装器,您需要了解底层系统的基本信息才能使用它。 其次,通过传递FirewallProfiles 获取配置文件然后使用Type 属性本质上等同于将FirewallProfiles 直接传递给方法。

          var rule = FirewallManager.Instance.CreateApplicationRule(
            FirewallProfiles.Private | FirewallProfiles.Domain | FirewallProfiles.Public, 
            @"MyApp Rule", 
            FirewallAction.Allow, 
            @"C:\MyApp.exe"
          );
          rule.Direction = FirewallDirection.Inbound;
          FirewallManager.Instance.Rules.Add(rule);
    

    请通过 Github 问题跟踪器提出此类问题。 https://github.com/falahati/WindowsFirewallHelper/issues

    【讨论】:

      【解决方案2】:

      建议:尝试将此添加到您的 app.config/web.config:

      <configuration>
         <runtime>
            <NetFx40_LegacySecurityPolicy enabled="true"/>
         </runtime>
      </configuration>
      

      具体来说:

      MSDN: Compatibility: Using the CAS Policy Legacy Option

      配置元素让您 指定进程或库使用旧 CAS 策略。当你 启用此元素,策略和证据超载将作为 他们在以前版本的框架中做到了。

      注意: CAS 策略行为是基于运行时版本指定的,因此 修改一个运行时版本的 CAS 策略不会影响 CAS 另一个版本的政策。

      替代建议:

      INetFwOpenPorts API

      建议 #3:

      this C# example

      请发回这些是否适合您。我在交叉手指;)!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-17
        • 2016-11-26
        • 1970-01-01
        • 2021-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多