53

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

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

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

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

4

8 に答える 8

78

ユーザーは、IE 10 を搭載した Windows 8 で LocalStorage 機能 (Twitter を含む) を使用している Web サイトで問題を抱えていました。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 イメージの問題が原因でした。問題を抱えている他の人にとっては、私の調査によると、「システムクリーナー」ユーティリティの使用が原因である可能性があります.

于 2013-12-30T22:53:49.690 に答える
8

間違いなく同じ症状には多くの原因があるかもしれませんが、これが私にとってこの問題を解決したものです.

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

偽のリードを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

変更しないでください。

于 2014-05-10T15:49:00.057 に答える
3

Mark Russinovich は常に次のように述べています。

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

問題を再現している間にファイル アクティビティのプロファイルを確認すると、問題の原因がファイル アクセス許可の不足にあるのか、ウイルス対策プログラムにあるのかがわかります。

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

于 2013-01-24T10:10:36.050 に答える
3

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

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

于 2012-11-28T18:26:18.907 に答える
2

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

于 2014-01-08T07:56:09.353 に答える
0

この問題は、レジストリ エントリが見つからないか破損している場合にも発生する可能性があります。リセットしても問題が解決せず、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 ブログを参照してください。

于 2015-06-21T16:00:11.307 に答える
0

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

于 2014-10-20T20:58:56.733 に答える