Accès Refusé pour l'localstorage dans IE10
Hier, j'ai installé Windows 8 et je suis maintenant à essayer de comprendre pourquoi j'obtiens un message "Accès Refusé" lors de l'accès à localstorage. La page est servi sur le même PC avec le navigateur (http://localhost). Mon sentiment est que l'un des paramètres de sécurité dans internet explorer 10 est mauvais, mais je n'ai pas compris lequel.
La ligne de code JavaScript déclenchement de l'erreur est:
if(window.localStorage.getItem('phone') == null)
Le code fonctionne très bien dans la dernière version de Chrome.
- Ne peut pas répéter, fonctionne très bien ici. Pourriez-vous essayer d'obtenir une démo de travail dans le jsfiddle?
- J'ai le sentiment qu'il peut avoir travaillé pour vous en raison de différents paramètres de sécurité? Je vais essayer de jongler avec le mien un peu plus avant de travailler jusqu'à une démo. Si vos paramètres sont différents, alors il est probable que la démo va travailler pour vous aussi. Si je découvre la réponse, je vais à la poste.
- J'ai réduit un peu. Lorsque j'utilise les Outils de développement F12 sur localhost, la saisie d'une montre pour la fenêtre.localStorage questions une erreur d'Accès Refusé. Le faire sur un site web accessible au public (microsoft.com) montre un Objet de Stockage. Il est donc probable qu'une démo sur jsfiddle ne fonctionnera pas parce que c'est un site public. Je vais essayer de la pêche autour de la IE10 les paramètres de sécurité entre l'Internet et l'Intranet Local pour voir si cela attire ce qui est différent.
- J'ai remarqué que la fenêtre.localStorage les questions de l'Accès Refusé erreur, mais que la fenêtre.sessionStorage ne le fait pas. Dans ce cas, j'aurais été à l'aide de sessionStorage de toute façon, donc je vais rénovation de l'application. Cependant, il serait bon de comprendre ce qui se passe. Le code a bien fonctionné dans Win7/IE9.
- Je suis d'exécuter le code que vous avez fournie à partir de localhost, et il fonctionne bien. L'ordinateur que j'utilise est par défaut installé Win8 (non de domaine connecté) avec IE assez bien commencé, pas tordu. Êtes-vous dans un domaine qui ajoute les paramètres de sécurité de votre ordinateur?
- De ne pas être tatillon, mais je crois que cette question appartient à super-Utilisateur, étant donné que votre question n'est pas vraiment de code. Si vous aviez cherché Superutilisateur, vous pourriez avoir trouvé mon question avec un problème similaire. Juste pour dire 😉
- Je n'étais pas au courant de l'Utilisateur du site. Ressemble à un bel outil pour ajouter à la boîte à outils. J'ai réalisé que la question initiale a été plus orientée sur l'utilisateur que le code orienté, mais le problème qui se passait en raison de code que j'avais écrit. Par ce raisonnement, j'ai pensé que quelqu'un d'autre codage de la même chose pourrait ressembler sur StackOverflow aussi.
- Je peux aussi reproduire ce sur win8 entreprise, domaine, x64 poste de travail.
- À dieu ne plaise à personne ici accepte une réponse à un Q&Un site web...
Vous devez vous connecter pour publier un commentaire.
Nos utilisateurs ont eu des problèmes avec des sites web en utilisant le LocalStorage fonctionnalité (notamment Twitter) sur Windows 8 avec IE 10. Lors de l'accès à l'un de ces sites avec les Outils de développement F12 ouverte, une
SCRIPT5: Access is denied
message est apparu sur la console.Après avoir travaillé avec le support de Microsoft, nous avons identifié la cause. Il s'est avéré être un problème avec les paramètres de la
C:\Users\username\Appdata\LocalLow
dossier dans son profil d'utilisateur.Chaque dossier sur votre ordinateur dispose d'un réglage de l'intégrité. Plus d'informations sur le but de cette configuration est ici: http://msdn.microsoft.com/en-us/library/bb625964.aspx
L'intégrité de réglage sur le
AppData\LocalLow
dossier (et ses sous-dossiers) dans le profil de chaque utilisateur est censé être réglé sur "Bas" (d'où le nom). Dans notre cas, le niveau d'intégrité n'a pas été réglé correctement sur ce dossier. Pour corriger le problème, exécutez la commande suivante dans une fenêtre d'invite de commande:icacls %userprofile%\Appdata\LocalLow /t /setintegritylevel (OI)(CI)L
(Si il n'y a plus d'un compte d'utilisateur sur l'ordinateur et les autres utilisateurs ont le même problème, la commande doit être exécutée sous chaque compte d'utilisateur.)
Quant à la façon de ce paramètre a été changé en premier lieu? Dans notre cas, elle a été causée par un problème dans la mesure Windows 8 image que nous avons déployés pour nos postes de travail. Pour les autres qui ont le problème, ma recherche a révélé que l'utilisation d'un "nettoyeur" de l'utilitaire peut être à blâmer.
icacls %userprofile%\Appdata\LocalLow /t /setintegritylevel (OI)(CI)H
. Le H jeux de l'intégrité en mode "élevé" (quoi que cela signifie) et IE sera anal sur localStorage.icacls %userprofile%\Appdata\LocalLow /t /setintegritylevel (OI)(CI)H
)Sans doute, il pourrait y avoir de nombreuses causes pour les mêmes symptômes, mais ici, c'est ce qui a résolu ce problème pour moi.
J'ai eu juste une de beaucoup de Pc sous Windows 7 avec IE11 présentant le symptôme de "Accès Refusé" sur la tentative de JavaScript impliquant
window.localStorage
de bonne réputation et bien comportés sites web. Utilisation de l'Explorateur de Processus a révélé que la partie proximale de la cause en était un ACCÈS REFUSÉ lors de la taskhost.exe (agissant au nom de Internet Explorer) a essayé de l'ouvrirDOMStore\container.dat
pour les médicaments Génériques en Lecture-Écriture. En fait, c'était pire que ça: si j'ai supprimécontainer.dat
, le même refus d'ACCÈS s'est produite, même à travers le fichier n'existe plus. Et, si j'ai supprimé le (caché)DOMStore
dossier, lorsque taskhost.exe a tenté de recréer, qui a reçu l'ACCÈS REFUSÉ.Après deux jours de traque des faux conduit, la solution finale était:
L'entrée de registre:
(note de la
LowCache
dans cette chaîne) a été définie incorrectement:alors qu'elle devrait être:
avec la conséquence que l'intégrité faible localStorage demandes ont été adressées à la moyenne de l'intégrité des régions de AppData disque de stockage, générant ainsi des erreurs d'ACCÈS REFUSÉ, et de tuer l'utilisation de JavaScript
window.localStorage
.Cette entrée de registre doit avoir été mal depuis de nombreuses années: peut-être un effet secondaire d'un enthousiaste de buggy plate-forme d'aperçus et ainsi de suite. Cette erreur a survécu à un total de dépose et de pose de IE11.
Il y a un aspect similaire entrée de registre pour le moyen-intégrité du cache:
et c'est bien de gauche comme:
et ne doit pas être changé.
Essayez d'activer le renforcement de la Mode Protégé dans les paramètres d'internet explorer, sous l'onglet Avancé, dans la Sécurité de la sous-liste. Cela permet à Microsoft filtre XSS. J'ai eu des problèmes similaires lors de la connexion à SOI, et que la récupération des notifications google+, et ma première solution a été de départ c'est à dire avec des privilèges d'administrateur. Mais je pense que le mode EP fera l'affaire dans votre cas aussi.
Liens connexes: Comprendre Le Mode Protégé
Mark Russinovich dit toujours: "en cas de doute, utilisez Le Moniteur De Processus":
localStorage données sont stockées dans des fichiers XML dans le dossier suivant:
C:\Users\[nom d'utilisateur]\AppData\Local\Microsoft\Internet Explorer\DOMStore
Un profil de l'activité des fichiers tout en reproduisant la question peut vous dire si le problème est causé par l'absence d'autorisations d'accès au fichier ou peut-être même un programme anti-virus.
Je peux reproduire l'erreur en ajoutant l'attribut "lecture seule" à "DOMStore\conteneur.dat". Vous devriez vérifier si toutes les autorisations de fichier/dossier et les attributs sont définis correctement. Sur ma machine, les admins et mon propre compte, ont toutes les autorisations pour le dossier mentionné.
Allez dans Outils/Options Internet/Avancé et en vertu de la "Sécurité", sélectionnez " Activer DOM Storage case. Cela devrait résoudre le problème
J'ai ajouté les sites concernés pour les Sites de Confiance de la section de l'IE et n'ont pas reçu l'erreur à nouveau.
Ce problème peut aussi être causé par la présence d'manquant ou corrompu les entrées de registre. Si une réinitialisation ne résout pas le problème, le
LocalLow
dossier a le bon niveau d'intégrité de, et laDOMStore
valeur de registre est correct, exécutez les commandes ci-dessous pour ré-enregistrer, c'est à dire dans le profil:OS 32 Bits:
64 Bits OS:
Voir le IE MSDN blog pour plus de détails.