internet-explorer-9 – 企业环境中的权限被拒绝错误

每当我公司域中具有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问题制定的域策略.我们通过与Microsoft的支持人员合作发现了哪个策略导致了问题,他们记录并分析了我在工作机器上重现问题时如何使用策略.

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

最佳答案 我们遇到了同样的问题,发现在注册表中搜索FEATURE_OBJECT_CACHING并设置iexplore.exe = 1修复了它.

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

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet
Explorer\Main\FeatureControl\FEATURE_OBJECT_CACHING

点赞