2009-11-11 56 views
2

我们的一个应用程序最近安装在严格锁定的系统中。为什么.NET框架(V2.0)会试图混淆Internet Explorer注册表?

启动时,应用程序尝试修改HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ZoneMap \ AutoDetect中的注册表。在源代码中没有对该位置的已知引用。实际上,有问题的应用程序不应该对注册表进行任何修改。

任何人都可以提出什么可能会导致它(或.NET框架)以这种方式访问​​注册表的应用程序错误?

+0

它试图修改从和到的值?这款应用程序是否以任何方式上网? – 2009-11-11 19:33:19

+0

我希望我知道它正在尝试做什么。我们的IT部门没有告诉我们,我没有访问权限查找!触发故障的应用程序不会直接执行任何类型的网络访问,但可能会启动其他应用程序(尽管在特定的问题配置中它们不应配置为这样做)。 – 2009-11-11 20:28:16

+0

不错。总是乐于尝试排除所需信息而排除故障。我感到你的痛苦。 – David 2009-11-11 20:37:46

回答

0

看来问题不是由我们的软件造成的,或者至少不是直接造成的。我仍然不知道IT部门在机器上发生了什么变化,但是这个问题神秘地消失了,没有修改我们的应用程序(或者至少没有任何与解决问题相关的尝试)。迄今为止,只有那台机器受到了这个问题的影响,所以我猜测这是一个非常具体的交互问题......尽管我根本就不了解根本原因。

1

这个特别的关键与你的计算机上的安全设置,而不仅仅是IE。操作系统的其他部分使用区域设置来确定授予可执行文件的权限。 .Net框架做了很多我们不知道的内容,包括确定适当的权限。

我很想知道如何安装您的应用程序。 (即ClickOnce,还是从网络上的网址或共享驱动器下载的?)

它可能是它来自潜在的“不可信”位置,就像我刚刚提到的位置,运行时间是试图授予它需要运行的权限。

当然,还有一些明显的问题,比如应用程序做任何网络访问(Web服务调用,Internet访问,访问网络上的其他机器,连接到集中的数据库服务器,从任何以上等)

+0

该应用程序是从MSI文件(使用WiX生成的,尽管我认为这不重要)安装。 MSI文件放置在网络上,但应用程序在本地安装,应位于“可信”位置(C:\ Program Files \\ [Company] \\ [Product])。 请在与网络访问相关的主要问题中查看我的评论。 – 2009-11-11 20:31:07

1

你确定它试图写入该密钥或只是访问和阅读它?应用程序Authenticode是否有可能被签名?如果是这样,那么你应该知道CLR将总是试图验证Authenticode签名的二进制文件,这意味着它可能触及网络以获取证书撤销列表。看看.NET Security Blog上的帖子。相关摘录:


大会负荷性能
当CLR加载具有验证码签名的组件,它总是试图验证签名。这与Windows加载程序相反,它只会在特定情况下验证文件的签名,例如文件是否为ActiveX控件。此验证可能需要相当多的时间,因为它可能需要多次点击网络来下载最新的证书吊销列表,并且还要确保在到受信任根的路上有完整的有效证书链。所以,当一个Authenticode签名被应用到程序集时,在加载该程序集时看到几秒的延迟并不是闻所未闻。

+0

有问题的程序集没有Authenticode签名,但这是一个很好的建议。 – 2009-11-11 20:32:16

相关问题