Questo perché sono due cose diverse. IIS_IUSRS è il gruppo per gli account dei processi di lavoro IIS . Ciò significa che l'identità con cui viene eseguito il pool di applicazioni stesso. IUSR è l'identità dell'utente anonimo. Ciò significa che l'identità che IIS ritiene essere l'utente che accede al sito.
Ora, anche se non l'hai detto, fammi indovinare - questa app è asp classica? (Altrimenti, se è .Net, allora devi usare la rappresentazione). Ad ogni modo, ciò che accade è che le risorse sono accessibili come identità impersonata, ovvero l'utente anonimo nel tuo caso, che significa IUSR. Ecco perché devi concedergli i diritti. In .Net, se disattivi la rappresentazione, scoprirai che IIS_IUSRS entrerà in gioco come ti aspetti. In ASP classico (e per file statici), non hai scelta, la rappresentazione è sempre "abilitata"; quindi è sempre l'identità dell'utente utilizzata, non l'identità del pool. Quindi poiché IIS_IUSRS è per le identità del pool, non è in gioco.
Modifica dopo OP ha aggiunto ulteriori informazioni:
È facile confondere IUSR e IIS_IUSRS a causa dei loro nomi. Per vedere che sono diversi è ricordare che IIS_IUSRS è un sostituto di IIS_WPG in IIS6, che era il gruppo di processi di lavoro. A questi gruppi si aggiungono account in cui si desidera eseguire i propri pool, non altre identità, ma i privilegi anonimi dovrebbero essere più limitati. per esempio. a volte potresti voler usare un account di dominio per eseguire il pool per la delega Kerberos ad altre risorse di rete. Quindi aggiungere l'account del servizio a questo gruppo.
Quando la rappresentazione è abilitata, il pool / processo finge di essere l'utente perché gli è stato detto. In caso di anon auth (il tuo caso), quell'utente è IUSR. In caso di autenticazione di Windows, sarebbe l'identità windows \ domain dell'utente. Questo è anche il motivo per cui si ottiene un impatto sulle prestazioni con la rappresentazione, perché il processo deve passare a un'identità diversa per l'accesso alle risorse.
Se stai utilizzando .NET e l'autenticazione anonima, non vedo perché dovresti abilitare la rappresentazione. Nel caso in cui non si utilizzi o non sia necessaria la rappresentazione, è necessario essere consapevoli di alcuni altri trucchi nel caso di IIS7: è possibile far scomparire completamente il proprio IUSR e porre fine alla confusione. Penso che ti piacerebbe, ed è anche il mio metodo preferito. Tutto quello che devi fare è dirgli di riutilizzare l'identità del pool come identità anonima .
Quindi dopo questo dovrai solo occuparti del gruppo IIS_IUSRS. Ma non ti confondere, questo non significa ancora che questi due siano gli stessi! Potrebbe essere possibile che l'identità del processo sostituisca IUSR, ma non viceversa!
Qualche altro trucco di IIS7 da tenere presente: se guardi IIS_IUSRS, potrebbe essere vuoto. Questo perché le identità del pool virtuale vengono aggiunte automaticamente all'avvio del pool, quindi non devi preoccuparti di queste cose.
Questa tabella dovrebbe aiutare a chiarire meglio come viene determinata l'identità di esecuzione del thread:
Rappresentazione Risorse di accesso anonime accessibili come
Abilitato Abilitato IUSR_computer in IIS5 / 6 o,
IUSR in IIS7 o,
Se hai cambiato l'account utente anon
in IIS, qualunque cosa tu abbia impostato lì
Abilitato Disabilitato MYDOM \ MyName
Autorizzazione NT abilitata disabilitata \ Servizio di rete (identità del pool)
Disabilitato Disabilitato Autorità NT \ Servizio di rete (identità del pool)