Les exceptions à la sécurité dans ASP.NET et de Charger le Profil Utilisateur de l'option dans IIS 7.5

Après le déploiement de la nouvelle version de notre ASP.NET 2.0 application, il a commencé à élever le niveau de sécurité d'exception: "le Système de.De sécurité.SecurityException: Demande d'autorisation de type 'System.Web.AspNetHostingPermission, Système, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 " a échoué.“.

Après une recherche rapide sur internet, nous avons pu résoudre ce isse en mettant l'option "Charger le Profil Utilisateur" à Vrai dans les pools d'applications IIS 7.5. Cette solution est également mentionné à plusieurs reprises ici sur stackoverflow:

Mais nous avons été incapables de trouver la raison pourquoi il doit être vrai. Nous avons passé en revue tous les changements dans la nouvelle version (avec plaisir il n'y avait que quelques-uns), mais n'a rien trouvé de suspect (pas d'accès à un registre ou des temp de données que certains articles proposés, etc). Quelqu'un pourrait-il nous donner des indices sur un ASP.NET application hébergée dans IIS 7.5 besoins "de Charger le Profil Utilisateur" option est définie à True?

Détails:

  • Application de la piscine: .NET 2.0; Mode Pipeline Géré - Classique; l'Identité de compte de domaine personnalisé
  • Dans IIS 6.0 (W2K3): Ancienne et nouvelle
    version de travail d'application de l'amende
  • Dans IIS 7.5 (W2K8 R2): Ancienne version de
    l'application fonctionne très bien; nouvelle version
    de la demande soulève des questions de sécurité
    exception–, il commence à travailler après
    le réglage "de Charger le Profil Utilisateur" à Vrai

Merci!

EDIT:
Nous avons enfin trouvé la cause de ce problème! Notre admin utilisé différentes techniques pour copier la nouvelle version de l'application à partir de l'environnement de test à l'environnement de production. Il a utilisé le serveur web en tant qu'intermédiaire. Après donwloading zippée communiqué de construire des artefacts à l'environnement de production, puis de décompresser les fichiers, ils étaient encore marqués comme "bloqué" parce qu'ils sont venus de différentes ordinateur. Voir aussi https://superuser.com/questions/38476/this-file-came-from-another-computer-how-can-i-unblock-all-the-files-in-a. ASP.NET alors, logiquement, exécute ces binaires en confiance partielle au lieu de la pleine confiance et qui a été fait à l'origine de sécurité mentionnés exceptions dans notre application.

Réglage "de Charger le Profil Utilisateur" True fixe les exceptions de sécurité comme un effet secondaire. Si "de Charger le Profil Utilisateur" est défini à False, alors notre application (pas notre code, peut-être certains .NET BCL externe ou de l'assemblée) est d'essayer de requête d'informations de base sur le répertoire "C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files" où l'identité de pool d'applications n'est pas autorisé à:

  • Avec une pleine confiance: accès refusé à cette requête, l'opération ne soulève pas toute exception
  • Avec confiance partielle: accès refusé pour cette opération de requête soulève l'exception de sécurité

Si "de Charger le Profil Utilisateur" est défini à True, alors profil temporaire dans le répertoire d'utilisateur est créé à chaque fois de l'application de la piscine commence. Notre application est alors d'essayer de requête d'info sur "Fichiers Internet Temporaires" répertoire de ce profil, qui l'identité de pool d'applications est autorisé à le faire. Ainsi, aucune exception n'est levée, même avec une confiance partielle.

Vraiment sympa la session de dépannage! 🙂

  • Merci pour le travail d'enquête, Peter, j'ai eu le même problème et le flux d'utilité (qui figurent dans le superuser.com question) était de savoir comment j'ai débloqué tous les fichiers dans mon répertoire webapp. Et maintenant, je peux éteindre la Charge de l'Utilisateur option de Profil!
  • Totalement excellent, nous avons juste rencontré ce problème et je ne pouvais pas expliquer correctement il.
  • ci-dessous la réponse a l'explication détaillée, stackoverflow.com/questions/17149132/...
InformationsquelleAutor Peter | 2010-06-18