Eh bien, d'abord cela dépend de la version de Windows que vous utilisez. Ensuite, vous parlez de 3 serveurs différents. C'est probablement ce qui rend la situation confuse.
Serveurs de développement
Tout d'abord, le plus simple : Cassini. Ce serveur s'exécute sous le même compte et avec les mêmes privilèges que l'instance de Visual Studio à partir de laquelle il est lancé. Généralement, il s'agit simplement de votre propre compte Windows.
IIS Express utilise exactement le même code que IIS, mais il s'exécutera également sous votre propre compte Windows, le même compte qui a lancé Visual Studio (ou Web Matrix, d'ailleurs).
IIS 6.0
Maintenant pour IIS proprement dit. Vous pourriez trouver ici plusieurs comptes. Tout d'abord, le 'vieux' IIS 6.0 que vous trouverez encore sur les machines Windows Server 2003 utiliserait les comptes suivants :
- Network Service (identité par défaut et recommandée pour les processus de travail des pools d'applications dans IIS 6.0 et versions ultérieures)
- Local Service (accès assez limité)
- Local System (utilisé pour le processus de travail lorsqu'il fonctionne en 'mode d'isolation IIS 5.0', membre des Administrateurs et a un accès complet)
- IIS_WPG (abréviation de Worker Process Group, il ne s'agit pas d'un compte mais d'un groupe, les identités des processus de travail devraient être membres de ce groupe pour obtenir les autorisations minimales requises)
- IUSR_ComputerName (non utilisé pour un processus de travail, mais plutôt pour associer les visiteurs anonymes à un compte Windows)
- IWAM_{Nom ordinateur} (pour le mode d'isolation IIS 5.0, vous utiliseriez généralement les pools d'applications pour l'isolation de nos jours)
- ASPNET (également pour le mode d'isolation IIS 5.0, il ressemble à le compte ASP.NET, mais dans la plupart des cas ce n'est pas lui)
(Cette liste est basée sur l'article TechNet IIS et les comptes intégrés (IIS 6.0).)
IIS 7 et versions ultérieures
Pour IIS 7, certains des comptes listés ci-dessus ne sont plus pertinents, et certains ont été remplacés. Comme ces comptes sont intégrés à Windows, ils ont le même SID partout, ce qui peut parfois être utile.
Si vous avez mis à niveau un serveur de Windows 2003 à Windows 2008, ou si vous installez des fonctionnalités de compatibilité IIS 6.0 ou des composants IIS plus anciens, vous pouvez avoir les anciens et les nouveaux comptes sur une seule machine.
- IUSR (*remplace IUSR_{Nom ordinateur}, donc utilisé pour mapper les utilisateurs anonymes par défaut*)
- IIS_IUSRS (*remplace le groupe IIS_WPG, donc il ne s'agit pas d'un compte mais plutôt d'un groupe*)
(Cela est basé sur l'article Compréhension des comptes utilisateurs et groupes intégrés dans IIS 7.)
Identités des pools d'applications (depuis IIS 7.0)
Cette liste est maintenant presque complète, mais nous devons encore comprendre un type spécial de compte : les identités de pools d'applications 'dynamiques'. Ce ne sont pas des comptes réels sur la machine comme les autres, par exemple vous ne pouvez pas les trouver répertoriés comme utilisateurs dans Windows. Mais ce sont des comptes virtuels créés sur le moment pour les pools d'applications, si vous choisissez l'option ApplicationPoolIdentity.
Si vous avez besoin de donner à un tel compte des privilèges d'accès à un fichier ou dossier, vous pouvez quand même le rechercher en tapant : IIS AppPool{DefaultAppPool} (remplacez {DefaultAppPool} par le nom du pool d'applications que vous avez créé).
(Vous pouvez en savoir plus à ce sujet dans Identités des pools d'applications sur iis.net.)
Lorsque vous installez .NET 4.0, IIS ajoute un nouveau pool d'applications pour pouvoir exécuter de nouvelles applications web .NET 4.0 aux côtés des applications web .NET 2.0 existantes. L'installateur donne à ce pool d'applications le nom ASP.NET v4.0, et utilise l'option ApplicationPoolIdentity. Par conséquent, un compte dynamique est créé pour ce nouveau pool d'applications, que vous l'utilisiez ou non.