web-dev-qa-db-ja.com

IE10のlocalstorageのアクセスが拒否されました

昨日、Windows 8をインストールして、localstorageにアクセスするときに「アクセスが拒否されました」というメッセージが表示される理由を理解しようとしています。このページは、ブラウザー(http:// localhost)と同じPCで提供されています。私の感じでは、IE 10のセキュリティ設定の1つが間違っているが、どちらを設定したかはまだわからない。

エラーをトリガーするJavaScriptコードの行は次のとおりです。

if(window.localStorage.getItem('phone') == null)

このコードは、Chromeの最新バージョンで正常に機能します。

51
Clint Brown

疑いなく同じ症状の多くの原因があるかもしれませんが、ここに私にとってこの問題を修正したものがあります。

IE11を搭載した多くのWindows 7 PCの1つだけで、評判の良いWebサイトからwindow.localStorageを含むJavaScriptを試行すると「アクセスが拒否されました」という症状が現れました。 Process Explorerを使用すると、taskhost.exe(Internet Explorerに代わって動作)が汎用読み取り/書き込み用にDOMStore\container.datを開こうとしたときに、近位の原因がアクセス拒否であることが明らかになりました。実際、それはそれよりも悪かった:container.datを削除すると、ファイルがもう存在しなくても、同じACCESS DENIEDが発生しました。そして、(隠された)DOMStoreフォルダーを削除した場合、taskhost.exeがそれを再作成しようとしたときに、アクセス拒否も受信しました。

誤ったリードを追跡する2日間の後、最終的な解決策は次のとおりでした。

レジストリエントリ:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\LowCache\Extensible Cache\DOMStore\CachePath

(その文字列のLowCacheに注意してください)が正しく設定されていません:

%USERPROFILE%\AppData\Local\Microsoft\Internet Explorer\DOMStore

あるべき時:

%USERPROFILE%\AppData\LocalLow\Microsoft\Internet Explorer\DOMStore

結果として、整合性の低いlocalStorageリクエストがAppDataディスクストレージの整合性が中程度の領域に向けられていたため、ACCESS DENIEDエラーが生成され、JavaScript window.localStorageの使用が中止されました。

このレジストリエントリは長年にわたって間違っていたに違いありません。おそらく、バグのあるプラットフォームのプレビューなどを熱狂的に取り込むことによる副作用でしょう。このエラーは、IE11の完全な削除と再インストールを生き延びました。

中程度の整合性のキャッシュには、似たような外観のレジストリエントリがあります。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\DOMStore\CachePath

そして、それは正しく残されます:

%USERPROFILE%\AppData\Local\Microsoft\Internet Explorer\DOMStore

変更しないでください。

7
Robin Walker

IE設定の[詳細設定]タブの[セキュリティ]サブリストで拡張保護モードを有効にしてください。これにより、Microsoft XSSフィルターが有効になります。SEにログインして取得するときに同様の問題が発生しましたgoogle +通知、および私の最初の回避策はIEを管理者権限で開始することでした。しかし、EPモードはあなたの場合でもトリックを行うと思います。

関連リンク: 拡張保護モードについて

3
programstinator

マーク・ルシノヴィッチはいつも「疑わしいときは Process Monitor "を使用してください:

localStorageデータは、次のフォルダーのXMLファイルに保存されます。C:\ Users\[USERNAME]\AppData\Local\Microsoft\Internet Explorer\DOMStore

問題を再現している間のファイルアクティビティのプロファイルは、問題がファイルアクセス許可の欠落またはアンチウイルスプログラムのせいであるかどうかを示します。

「DOMStore\container.dat」に読み取り専用属性を追加することにより、エラーを再現できます。すべてのファイル/フォルダーのアクセス許可と属性が正しく設定されているかどうかを確認する必要があります。私のマシンでは、管理者と自分のアカウントは、言及されたフォルダーに対する完全な許可を持っています。

3
Luis Cantero

[ツール]、[インターネットオプション]、[詳細設定]の順に進み、[セキュリティ]で[DOMストレージを有効にする]チェックボックスをオンにします。これで問題が解決するはずです

2
VladMX

関係するWebサイトをIEの信頼済みサイトセクションに追加しましたが、再度エラーが表示されることはありません。

0
northben

この問題は、レジストリエントリが見つからないか破損しているために発生する場合もあります。 リセット で問題が解決しない場合、 LocalLowフォルダーの整合性レベルが正しい 、および DOMStoreレジストリー値が正しい 、以下のコマンドを実行して、プロファイルにIEを再登録します。

32ビットOS:

C:\WINDOWS\system32\ie4uinit.exe -BaseSettings

64ビットOS:

C:\WINDOWS\system32\ie4uinit.exe -BaseSettings
C:\Windows\SysWOW64\ie4uinit.exe -BaseSettings

詳細については、 IE MSDN blog を参照してください。

0
Mitch