gpt4 book ai didi

ClickOnce 应用程序和 Windows 防火墙

转载 作者:行者123 更新时间:2023-12-03 06:25:07 28 4
gpt4 key购买 nike

在我看来,ClickOnce 应用程序无法与 Windows Firewall 顺利运行。 .

我已经成功使用 ClickOnce 部署两年了。现在企业已升级到Windows 7,这遇到了障碍。每个用户的配置都发生了变化:

  • 在每个用户的计算机上启用 Windows 防火墙
  • 用户在其计算机上没有管理员权限。

ClickOnce 的工作原理如下:每次更新 ClickOnce 应用程序时,可执行文件都会复制到新目录。该目录有一个机器生成的名称。 (例如,它可能部署到“C:\Users\andrew.shepherd\AppData\Local\Apps\2.0\GTTG5EJB.AVG\jc69hir.e45\watershedclient.exe”)。

默认情况下,Windows 防火墙会阻止应用程序接受传入调用。但是,当应用程序第一次尝试执行此操作时,Windows 防火墙会弹出一个对话框,允许管理员为应用程序设置异常(exception),并授予其所需的权限。

问题是,Windows 防火墙将应用程序记录存储为完整文件路径。每次更新 ClickOnce 应用程序时,它都会安装到不同的目录。因此,Windows 防火墙将其视为一个全新的应用程序。管理员现在必须为每台更新的计算机配置此更新的防火墙。这实际上否定了我们使用 ClickOnce 技术的全部原因。

这是 flagged as an issue 2005 年,微软承认了这个问题,并承认没有解决方案。

这个问题解决了吗?

最佳答案

The problem is, Windows Firewall stores the application record as the full file path. Each time a ClickOnce application is updated, it installs to a different directory. Therefore, Windows Firewall sees it as a whole new application.

此处的一种方法是编辑规则名称,使其仅指定 EXE 的名称而不是完整路径。例如。我本地部署的“Hello World”应用程序是通过 ClickOnce 安装在此路径上的:

C:\Users\jdoe\AppData\Local\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\hell..tion_32be098505965508_0001.0000_ad51d60d7593998b\HelloWorld.exe

并且可以使用仅适用于“HelloWorld.exe”的防火墙规则。然而,这会产生一个安全漏洞,因为该规则适用于具有该名称的任何应用程序。我们可以通过指定一些路径来进一步细化规则:

%LOCALAPPDATA%\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\*\HelloWorld.exe

请注意,我还使用了一个环境变量,它显然是为了测试防火墙规则而扩展的。

关于ClickOnce 应用程序和 Windows 防火墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818034/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com