Das liegt daran, dass dies zwei verschiedene Dinge sind. IIS_IUSRS ist die Gruppe für IIS-Worker-Prozesskonten . Dies bedeutet die Identität, unter der der Anwendungspool selbst ausgeführt wird. IUSR ist die anonyme Benutzeridentität. Dies bedeutet die Identität, von der IIS glaubt, dass sie der Benutzer ist, der auf die Site zugreift.
Nun, obwohl Sie es nicht gesagt haben, lassen Sie mich raten - diese App ist klassisch asp? (Andernfalls, wenn es sich um .Net handelt, müssen Sie den Identitätswechsel verwenden.) In beiden Fällen wird auf Ressourcen als Identitätswechsel zugegriffen, dh als anonymer Benutzer in Ihrem Fall, dh IUSR. Deshalb müssen Sie ihm die Rechte gewähren. Wenn Sie in .Net den Identitätswechsel deaktivieren, werden Sie feststellen, dass IIS_IUSRS wie erwartet ins Spiel kommt. In Classic ASP (und für statische Dateien) haben Sie keine Wahl, der Identitätswechsel ist immer "aktiviert". Es wird also immer die Benutzeridentität verwendet, nicht die Poolidentität. Da IIS_IUSRS für Poolidentitäten vorgesehen ist, ist es nicht im Spiel.
Nach OP bearbeiten Weitere Informationen hinzugefügt:
Es ist leicht, IUSR und IIS_IUSRS aufgrund ihrer Namen zu verwechseln. Um festzustellen, ob sie unterschiedlich sind, müssen Sie sich daran erinnern, dass IIS_IUSRS ein Ersatz für IIS_WPG in IIS6 ist, der Worker Process Group. Zu diesen Gruppen fügen Sie Konten hinzu, unter denen Sie Ihre Pools ausführen möchten, nicht Anon-Identitäten. Anon-Berechtigungen sollten eingeschränkter sein. z.B. Manchmal möchten Sie möglicherweise ein Domänenkonto verwenden, um den Pool für die Kerberos-Delegierung an andere Netzwerkressourcen auszuführen. Dann würden Sie dieses Dienstkonto dieser Gruppe hinzufügen.
Wenn der Identitätswechsel aktiviert ist, gibt der Pool / Prozess vor, der Benutzer zu sein, weil er dazu aufgefordert wurde. Im Fall von anon auth (Ihrem Fall) ist dieser Benutzer IUSR. Bei der Windows-Authentifizierung handelt es sich um die Windows \ Domain-Identität des Benutzers. Dies ist auch der Grund, warum Sie beim Identitätswechsel einen Leistungseinbruch erzielen, da der Prozess für den Ressourcenzugriff auf eine andere Identität wechseln muss.
Wenn Sie .NET und anonyme Authentifizierung verwenden, verstehe ich nicht, warum Sie den Identitätswechsel aktivieren würden. Wenn Sie keinen Identitätswechsel verwenden oder nicht benötigen, sollten Sie sich bei IIS7 weiterer Tricks bewusst sein: Sie können Ihren IUSR vollständig verschwinden lassen und jegliche Verwirrung beenden. Ich denke, das würde dir gefallen, und es ist auch meine bevorzugte Methode. Sie müssen lediglich angeben, dass die Poolidentität als anonyme Identität wiederverwendet werden soll .
Danach müssen Sie sich nur noch mit der Gruppe IIS_IUSRS befassen. Aber nicht verwirren, das heißt immer noch nicht, dass diese beiden gleich sind! Es kann möglich sein, dass die Prozessidentität IUSR ersetzt, aber nicht umgekehrt!
Weitere IIS7-Tricks, die Sie beachten sollten: Wenn Sie sich IIS_IUSRS ansehen, ist es möglicherweise leer. Dies liegt daran, dass Ihre virtuellen Poolidentitäten beim Start des Pools automatisch hinzugefügt werden, sodass Sie sich über diese Dinge keine Gedanken machen müssen.
Diese Tabelle soll helfen, besser zu verdeutlichen, wie die Thread-Ausführungsidentität bestimmt wird:
Identitätswechsel Anonymer Zugriff Ressourcen, auf die zugegriffen wird
Aktiviert Aktiviert IUSR_computer in IIS5 / 6 oder,
IUSR in IIS7 oder,
Wenn Sie das anon-Benutzerkonto geändert haben
in IIS, was auch immer Sie dort einstellen
Aktiviert Deaktiviert MYDOM \ MyName
Deaktiviert Aktiviert NT Authority \ Network Service (Poolidentität)
Deaktiviert Deaktiviert NT Authority \ Network Service (Poolidentität)