Как создать правило брандмауэра в стандарте .net 2.0, которое может поддерживаться в Linux? ⇐ Linux
Как создать правило брандмауэра в стандарте .net 2.0, которое может поддерживаться в Linux?
В настоящее время мы используем NetFwTypeLib COMReference для добавления правила брандмауэра в наше приложение, но оно работает только в Windows
public static bool AddRule(Правило брандмауэра){ INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule")); firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW; firewallRule.Description = rule.RuleDescription; firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN; firewallRule.Enabled = правда; firewallRule.ApplicationName = rule.ApplicationPath; firewallRule.RemoteAddresses = "LocalSubnet"; firewallRule.InterfaceTypes = "Все"; firewallRule.Name = rule.RuleName; переключатель (правило.Протокол) { случай FirewallRule.ProtocolType.TCP: firewallRule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP; перерыв; случай FirewallRule.ProtocolType.UDP: firewallRule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP; перерыв; по умолчанию: throw new ArgumentOutOfRangeException("rule", "Свойство Protocol правила брандмауэра содержит недопустимое значение!"); } INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); firewallPolicy.Rules.Add(firewallRule); вернуть истину; } этот фрагмент кода поддерживается только в Windows, поэтому как мне заменить этот фрагмент кода на другую библиотеку, чтобы наш код работал и в Linux?
В настоящее время мы используем NetFwTypeLib COMReference для добавления правила брандмауэра в наше приложение, но оно работает только в Windows
public static bool AddRule(Правило брандмауэра){ INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule")); firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW; firewallRule.Description = rule.RuleDescription; firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN; firewallRule.Enabled = правда; firewallRule.ApplicationName = rule.ApplicationPath; firewallRule.RemoteAddresses = "LocalSubnet"; firewallRule.InterfaceTypes = "Все"; firewallRule.Name = rule.RuleName; переключатель (правило.Протокол) { случай FirewallRule.ProtocolType.TCP: firewallRule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP; перерыв; случай FirewallRule.ProtocolType.UDP: firewallRule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP; перерыв; по умолчанию: throw new ArgumentOutOfRangeException("rule", "Свойство Protocol правила брандмауэра содержит недопустимое значение!"); } INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); firewallPolicy.Rules.Add(firewallRule); вернуть истину; } этот фрагмент кода поддерживается только в Windows, поэтому как мне заменить этот фрагмент кода на другую библиотеку, чтобы наш код работал и в Linux?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Клиент GRPC в стандарте .NET не удается при вызове из .NET Framework, но не .NET CORE 3.1
Anonymous » » в форуме C# - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Клиент GRPC в стандарте .NET не удается при вызове из .NET Framework, но не .NET CORE 3.1
Anonymous » » в форуме C# - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-