Voici un problème avec IIS 7.5 et ASP.NET que j'ai recherché et que je n'ai trouvé nulle part. Toute aide serait grandement appréciée.
Ma question est la suivante: en utilisant ASP.NET dans IIS 7.5, comment IIS et / ou le système d'exploitation permettent-ils à l'application Web d'écrire dans un dossier comme C:\dump
lors d'une exécution en toute confiance? Comment se fait-il que je n'ai pas à ajouter explicitement un accès en écriture à l'utilisateur du pool d'applications (dans ce cas ApplicationPoolIdentity
)?
Ce que je sais:
- Dans IIS 7.5, l'identité par défaut d'un pool d'applications est
ApplicationPoolIdentity
. ApplicationPoolIdentity
représente un compte d'utilisateur Windows appelé "IIS APPPOOL \ AppPoolName", qui est créé lors de la création du pool d'applications, où AppPoolName est le nom du pool d'applications.- L'utilisateur "IIS APPPOOL \ AppPoolName" est par défaut un membre du
IIS_IUSRS
groupe. - Si vous utilisez en pleine confiance, votre application web peut écrire dans de nombreux domaines du système de fichiers ( à l' exclusion des dossiers comme
C:\Users
,C:\Windows
, etc.). Par exemple, votre application aura accès à écrire à certains dossiers, comme,C:\dump
. - Par défaut, le
IIS_IUSRS
groupe ne dispose pas d'un accès en lecture ou en écritureC:\dump
(du moins pas un accès visible via l'onglet "Sécurité" dans l'Explorateur Windows). - Si vous refusez l'accès en écriture à
IIS_IUSRS
, vous obtiendrez une exception SecurityException lors de la tentative d'écriture dans le dossier (comme prévu).
Ainsi, compte tenu de tout cela, comment l'accès en écriture est-il accordé à l'utilisateur "IIS APPPOOL \ AppPoolName"? Le processus w3wp.exe s'exécute en tant qu'utilisateur, alors qu'est-ce qui permet à cet utilisateur d'écrire dans un dossier auquel il ne semble pas avoir d'accès explicite?
Veuillez noter que je comprends que cela a probablement été fait pour des raisons de commodité, car il serait difficile d'accorder à un utilisateur l'accès à tous les dossiers dans lesquels il doit écrire si vous exécutez sous Full Trust. Si vous souhaitez limiter cet accès, vous pouvez toujours exécuter l'application sous Medium Trust. Je souhaite en savoir plus sur la manière dont le système d'exploitation et / ou IIS autorise ces écritures, même s'il ne semble pas y avoir d'accès explicite au système de fichiers.