我正在研究.NET中的应用程序,它通过将自身绑定到随机开放端口来运行服务器。用户会获得一个弹出窗口,让他们知道它已阻止我的应用程序或其某些功能。
但是当我用Python编写相同的程序时,防火墙对此没有异议。
我将Python和我的.NET应用程序作为标准用户运行(没有管理员权限),我不明白防火墙弹出窗口只发生在.NET而不是python。
感谢您的帮助。
答案 0 :(得分:1)
正如Jim所暗示的,防火墙规则有多种标准可用于触发给定规则,但就正在运行的程序而言,它是基于正在运行的.exe完成的。 。由于Python解释器是单个.exe,听起来好像在你的场景中已经存在允许Python在网络上监听的权限规则(即充当服务器)。
在您的案例中向用户显示的弹出窗口不应只是一个通知。它实际上应该允许知道管理员凭据的用户单击按钮并自动更新防火墙规则以允许您的程序访问。
如果要自定义用户体验,可以向程序添加代码以管理防火墙设置。当然,您的流程仍需要至少运行一次才能执行此操作。但是,当该流程已作为管理员运行时,该部分可以作为安装程序流程的一部分完成。
有关详细信息,请参阅此处:http://msdn.microsoft.com/en-us/library/windows/desktop/ff956124(v=vs.85).aspx