.NET应用操纵Windows Firewall

最近写的一个WinForm应用,self-host了一个HTTP Web Server,然而只要Windows防火墙开着,客户端就无法连接进来。

搜索了一下,下面是解决方案:编程添加防火墙例外规则,亲测有效。

  • Windows XP SP2

使用这个wrapper:http://www.codeproject.com/Articles/10911/Windows-XP-SP-Firewall-Controller
如果链接失效,猛击此处直接下载demo。
你的WinForm应用需要添加对C:WindowsSystem32hnetcfg.dll的引用。

  • Windows Vista +

直接有现成的API可供使用,参考这个链接。
你的WinForm应用需要添加对C:WindowsSystem32FirewallAPI.dll的引用。

另外,操纵防火墙本身就需要管理员权限,别忘记在你的app.manifest中声明:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.