Cli*_*own 51 javascript access-denied local-storage internet-explorer-10
昨天我安装了Windows 8,现在正试图理解为什么我在访问localstorage时收到"拒绝访问"消息.该页面与浏览器(http:// localhost)在同一台PC上提供.我的感觉是IE 10中的一个安全设置是错误的,但我还没弄清楚哪一个.
触发错误的JavaScript代码行是:
if(window.localStorage.getItem('phone') == null)
Run Code Online (Sandbox Code Playgroud)
该代码在最新版本的Chrome中运行良好.
Twe*_*eek 75
我们的用户在使用Windows 10和Windows 10的LocalStorage功能(包括Twitter)时遇到了网站问题.当打开F12开发人员工具访问其中一个网站时,SCRIPT5: Access is denied
控制台上会显示一条消息.
在使用Microsoft支持后,我们确定了原因.事实证明,C:\Users\username\Appdata\LocalLow
用户个人资料中的文件夹设置存在问题.
计算机上的每个文件夹都具有完整性设置.有关此设置目的的更多信息,请访问:http://msdn.microsoft.com/en-us/library/bb625964.aspx
AppData\LocalLow
每个用户配置文件中文件夹(及其子文件夹)的完整性设置应设置为"低"(因此名称).在我们的示例中,未在此文件夹上正确设置完整性级别.要解决此问题,请在命令提示符窗口中运行以下命令:
icacls %userprofile%\Appdata\LocalLow /t /setintegritylevel (OI)(CI)L
(如果计算机上有多个用户帐户,而其他用户遇到同样的问题,则需要在每个受影响的用户帐户下运行该命令.)
至于这个设置如何在一开始就改变了?在我们的例子中,它是由我们部署到工作站的自定义Windows 8映像中的问题引起的.对于其他有问题的人,我的研究表明,使用"系统清洁"工具可能是罪魁祸首.
小智 7
毫无疑问,可能有许多相同症状的原因,但这是解决这个问题的原因.
我只有IE11中的一台,IE11在尝试任何涉及window.localStorage
信誉良好且表现良好的网站的JavaScript时,都表现出"拒绝访问"的症状.使用Process Explorer显示,当taskhost.exe(代表Internet Explorer)尝试打开DOMStore\container.dat
Generic Read-Write 时,近端原因是ACCESS DENIED .事实上,它比那更糟:如果我删除了container.dat
,发生了同样的ACCESS DENIED,即使通过该文件不再存在.并且,如果我删除了(隐藏)DOMStore
文件夹,当taskhost.exe尝试重新创建它时,也会收到ACCESS DENIED.
经过两天追逐虚假线索后,最终解决方案如下:
注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\DOMStore\CachePath
Run Code Online (Sandbox Code Playgroud)
(请注意该LowCache
字符串中的内容)被错误地设置为:
%USERPROFILE%\AppData\Local\Microsoft\Internet Explorer\DOMStore
Run Code Online (Sandbox Code Playgroud)
应该是什么时候:
%USERPROFILE%\AppData\LocalLow\Microsoft\Internet Explorer\DOMStore
Run Code Online (Sandbox Code Playgroud)
结果是低完整性localStorage请求被定向到AppData磁盘存储的中等完整性区域,从而生成ACCESS DENIED错误,并终止使用JavaScript window.localStorage
.
这个注册表项多年来一定是错误的:也许是对错误平台预览的热情接受的副作用等等.完全删除并重新安装IE11后,此错误仍然存在.
中等完整性缓存有一个类似的注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\DOMStore\CachePath
Run Code Online (Sandbox Code Playgroud)
并且正确地保留为:
%USERPROFILE%\AppData\Local\Microsoft\Internet Explorer\DOMStore
Run Code Online (Sandbox Code Playgroud)
不应该改变.
归档时间: |
|
查看次数: |
48489 次 |
最近记录: |