企业环境中的权限被拒绝错误

时间:2012-03-13 20:24:51

标签: internet-explorer-9 permission-denied corporate-policy

每当我公司域中具有IE9的计算机导航到网站(从链接)时,我们会在访问以下任何窗口属性时收到“权限拒绝”错误对话框(styleMedia,clientInformation,screen,history,navigator, localStorage,performance,sessionStorage)。初始页面加载有效但当您有到同一页面的链接时会发生错误。

最初这在加载JQuery库时表现出来。 JQuery第一次访问window.navigator.userAgent时会发生权限被拒绝错误。

我们所有的机器都是Windows 7 64位Enterprise SP1。下面的代码可以从IIS运行,也可以直接打开.html文件。

我们无法在公司域名之外重现此问题。我们在公司环境中怀疑某些政策,但无法确定导致此问题的政策。

我们可以按如下方式解决问题:

  • 切换到IE7或IE8文档模式,然后再回到IE9标准文档模式将使浏览器进入从那时开始工作的状态。
  • 刷新页面将修复单个页面加载,但是当单击链接并且通过链接加载另一个页面(可能与您当前所在的页面相同)时,问题将再次发生。
  • 从我们域外的计算机导航到该网站。

的test.html

<html>
<head> 
    <title>Permission Denied</title>
</head>
<body>
    <a href="test.html">Click Here</a>
    <script type="text/javascript">
        alert(window.navigator);
    </script>
</body>
</html>

要查看所有无法访问的属性,我们可以打开此html并点击页面上的链接:

testWindow.html

<html>
<head> 
    <title>Permission Denied</title>
</head>
<body>
    <a href="testWindow.html">Click Here</a>
    <script type="text/javascript">
        var deniedProperties = '';
        for (var i in window) {
            var obj = window[i];
            if (obj == null) continue;

            try {
                obj._____x = 1; // Attempt to access the object and set a new value on that object.
            }
            catch (e) {
                if (e.number == -2146828218) { // Permission Denied error number.
                    deniedProperties += i + '\n';
                }
            }
        }

        alert('Permission Denied:\n' + deniedProperties);
    </script>
</body>
</html>



更新

这是针对IE6问题制定的域名政策。我们通过与微软的支持人员合作发现了导致问题的政策,他们记录并分析了我在工作机器上重现问题时如何使用政策。

您可以尝试的另一个想法是在Active Directory中设置一个您具有完全修改权限的组织单位。让它继承企业的所有策略,然后使用二进制消除来阻止策略,直到找到导致问题的策略。

1 个答案:

答案 0 :(得分:2)

我们遇到了同样的问题,发现在注册表中搜索<​​strong> FEATURE_OBJECT_CACHING 并设置 iexplore.exe = 1 修复了该问题。

对我们来说,这实际上是在:

  

HKEY_LOCAL_MACHINE \ SOFTWARE \政策\微软\互联网   资源管理器\主\ FeatureControl \ FEATURE_OBJECT_CACHING