Tag: windows firewall

获取控制台应用程序的Windows防火墙提示,但不提供服

我有一个ac #.net应用程序,它从网络上的其他设备接收TCP和UDP流。 当我将其作为控制台应用程序运行时,Windows防火墙会提示我:“Windows防火墙已阻止此程序的某些function”,它要求我允许vshost32.exe在网络上进行通信。 我同意,该应用程序工作正常。 然而,当我将应用程序作为服务运行时(我有一个单独的控制台和服务包装器)我没有得到这样的提示,如果关闭防火墙我只能让它工作。 这是服务的预期吗? () 另外,我已经阅读了一些代码片段,建议您可以手动将例外添加到Windows防火墙列表中。 这仅适用于控制台应用程序还是适用于服务? 我的一些代码可以监听端口,以防有用… // // Setup UDP listening // if (protocol == “UDP”) { m_udp = new UdpConn(“RedwallReceiver UDP”, m_local, new NetAddress()); m_udp.Receive(new VDataHandler(ReceiveData)); } // // Setup TCP listening // if (protocol == “TCP”) { m_listener = new TcpListener(m_local); m_listener.Start(); m_listener.BeginAcceptSocket(AcceptSocket, null); }

如何在Worker角色实例上成功编辑代码中的防火墙规则?

我正在尝试一些在本地工作的代码但它在我的云实例上不起作用。 我假设它可能与权限相关,但我还无法修复它。 这是我在本地调试我的工作者角色时的工作原理,但是当它发布时没有任何反应(现在正在暂存)。 string strCmdText = string.Format(“advfirewall firewall add rule name=\”BlockU\” protocol=any dir=in action=block remoteip={0}”, ip); ProcessStartInfo psi = new ProcessStartInfo(“netsh.exe”, strCmdText); psi.RedirectStandardOutput = true; psi.UseShellExecute = false; psi.CreateNoWindow = true; try { Process.Start(psi); } catch (Exception ex) { Debug.WriteLine(ex.Message); } 我也试过用 psi.Verb = “runas”; 但这也没有帮助。 最后我尝试了防火墙api。 这也在本地工作,但在最后一行上抛出了访问被拒绝错误。 INetFwRule2 inboundRule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID(“HNetCfg.FWRule”)); inboundRule.Enabled = true; […]

C#HttpListener和Windows防火墙

我正在开发的程序之一有一个内置的web服务器,只能处理非常具体的请求(静态)。 与TcpListener不同,当启动HttpListener时,不会提示用户允许程序允许侦听哪些网络。 这导致了一个大问题,因为程序需要侦听远程连接,现在Windows防火墙已拒绝远程连接。 如果我在Windows防火墙中创建一个新规则,并在“程序和服务”下选择我的程序,Windows仍将拒绝所有远程连接……但如果我选择“所有符合指定条件的程序”,那么它只能工作精细。 我的问题是为什么? 为什么防火墙会在专门选择时拒绝我的应用程序? 为什么用户不会像使用其他监听器一样获得防火墙安全屏幕的提示?

使用API​​更新现有防火墙规则

我能够以编程方式将单个规则添加到Windows防火墙(Server 2008 R2),但是我试图避免每个IP地址有多个规则,并且只想更新现有规则RemoteAddresses。 下面是我用来添加规则的代码,我正在尽力研究如何更新现有规则远程地址,但没有运气。 任何帮助表示赞赏! string ip = “xxxx”; INetFwRule2 firewallRule = (INetFwRule2)Activator.CreateInstance(Type.GetTypeFromProgID(“HNetCfg.FWRule”)); firewallRule.Name = “Block Bad IP Addresses”; firewallRule.Description = “Block Nasty Incoming Connections from IP Address.”; firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK; firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN; firewallRule.Enabled = true; firewallRule.InterfaceTypes = “All”; firewallRule.RemoteAddresses = ip; INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID(“HNetCfg.FwPolicy2”)); firewallPolicy.Rules.Add(firewallRule);

创建防火墙规则以c#编程方式打开每个应用程序的端口

我需要为我的应用程序打开特定端口。 我已尝试为每个端口使用每个应用程序的INetFwAuthorizedApplication规则。 fwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(app) 或者,使用INetFwOpenPort为所有应用程序打开一个端口。 firewallManager.LocalPolicy.CurrentProfile.GloballyOpenPorts.Add(port) 有没有办法以编程方式以编程方式为每个应用程序打开单个端口? 我可以通过防火墙设置手动完成。

部署NetFwTypeLib以管理Windows防火墙

我的Windows服务需要从Windows防火墙创建/删除某些规则。 为此,我通过COM与\system32\hnetcfg.dll接口。 它在我的64位Windows 7计算机上运行良好 ,但在另一台64位Windows 7计算机上进行测试会引发以下错误: Service cannot be started. System.IO.FileNotFoundException: Could not load file or assembly ‘Interop.NetFwTypeLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. The system cannot find the file specified. 我有一种感觉,如果我使用我的应用程序嵌入并安装程序集,我会遇到不同版本的Windows以及32位和64位之间的问题。 如何解决这个缺少的assembly部署问题? 编辑:这似乎是除了4.0之外的任何目标框架的VS2010问题 。 有人有解决方法吗?

通过win7 FirewallAPI将应用程序防火墙规则添加到专用和公用网络

一点背景:Basicaly我想为私人和公共网络添加程序防火墙访问规则。 我曾经使用过这个 – “netsh firewall add allowedprogram program =”Path ..“name = AppName ENABLE scope = ALL profile = CURRENT” 但是现在我想使用COM对象自动化一些进程。 找到了这段shiny的代码 – http://web.archive.org/web/20070707110141/http://www.dot.net.nz/Default.aspx?tabid=42&mid=404&ctl=Details&ItemID=8 在实施课程后,我一直在尝试使用FirewallHelper.Instance.GrantAuthorization(@“Path …”,“AppName”,NET_FW_SCOPE_.NET_FW_SCOPE_ALL,NET_FW_IP_VERSION_.NET_FW_IP_VERSION_ANY); 我面临的问题是GrantAuthorization方法只会为公共或专用网络添加规则,而我的旧netsh命令会为每个网络添加2个规则。 这些命令实际上看起来非常相似,所以它对我来说有点温和。 那么……如何添加两个网络规则? 肖恩

检测Windows防火墙是否阻止了我的程序

我有一个应用程序通过他们的API与NetApp设备通信。 启用Windows防火墙后,api命令将失败。 关闭防火墙后,api命令可以正常工作。 我没有收到任何消息,如“Windows防火墙阻止此程序”。 仔细阅读文档,我相信我发现需要打开的TCP端口才能使api命令工作。 如何以编程方式检测端口是否被阻塞,以便我可以向用户显示有关潜在问题的消息?