代码之家  ›  专栏  ›  技术社区  ›  jwismar

ActiveX控件在以编程方式生成页时不访问文件系统

  •  2
  • jwismar  · 技术社区  · 16 年前

    我们正在研究在网页中使用第三方的ActiveX控件。我们的页面包含访问和操作控件的JavaScript。控件的部分功能要求它访问本地文件系统上的文件。

    如果我们以编程方式生成页面,此功能将失败-ActiveX控件似乎无法访问文件系统。如果我们获取生成的页面源代码,将其复制到一个静态文件中,并从同一个web服务器提供该文件,那么一切都会按预期工作—ActiveX控件从文件系统获得它所需的信息,我们就可以愉快地继续前进。

    我使用JavaScript调试器浏览了两个不同的页面,并验证了对ActiveX控件的调用具有相同的参数。我已经验证了静态页面和动态页面都列在IE的“本地Intranet区域”中,因此它们应该具有相同的安全约束。

    我使用了SysInternals的ProcessMonitor来查看ActiveX控件在系统中的作用,以及它们之间的区别。有趣的是,当对控件的调用成功时,有ProcessMonitor跟踪显示控件在注册表中查询文件名和访问文件系统的位置。当进程失败时,并不是访问文件系统失败,而是控件从不查询注册表来查找文件名,也从不尝试访问文件系统。

    这个控件的供应商很迷惑,我已经没有办法尝试什么了。有什么我应该检查的吗?IE或ActiveX控件可能检测到的动态生成的页面和静态页面之间的某些差异会导致行为发生变化吗?URI不同,静态页面有一个“.html”扩展名。。。。据我所知,没有什么不同。

    欢迎有任何想法。。。。

    1 回复  |  直到 16 年前
        1
  •  0
  •   jwismar    16 年前

    我们找出了问题所在,并有效地发现了第三方ActiveX控件中的一个错误。

    它们有一个特性,可以选择验证加载控件的页面的URL,也可以使用一个通配符配置控件 匹配任何URL。供应商与我们合作,用通配符配置控件,并向我们保证这不会是问题所在。