Ecco un problema con IIS 7.5 e ASP.NET con cui ho cercato e non ho trovato nulla. Qualsiasi aiuto sarebbe molto apprezzato.
La mia domanda è: utilizzando ASP.NET in IIS 7.5, in che modo IIS e / o il sistema operativo consentono all'applicazione Web di scrivere in una cartella come C:\dump
quando si esegue in piena fiducia? Come mai non devo aggiungere esplicitamente l'accesso in scrittura per l'utente del pool di applicazioni (in questo caso ApplicationPoolIdentity
)?
Questo lo so:
- In IIS 7.5, l'identità predefinita per un pool di applicazioni è
ApplicationPoolIdentity
. ApplicationPoolIdentity
rappresenta un account utente di Windows chiamato "IIS APPPOOL \ AppPoolName", che viene creato quando viene creato il pool di applicazioni, dove AppPoolName è il nome del pool di applicazioni.- L'utente "IIS APPPOOL \ AppPoolName" è un membro predefinito del
IIS_IUSRS
gruppo. - Se si esegue in Full Trust, l'applicazione web può scrivere a molte aree del file system (escluse le cartelle come
C:\Users
,C:\Windows
, ecc). Ad esempio, l'applicazione avrà accesso per scrivere in alcune cartelle, ad esempioC:\dump
. - Per impostazione predefinita, al
IIS_IUSRS
gruppo non viene concesso l'accesso in lettura o scritturaC:\dump
(almeno non l'accesso visibile attraverso la scheda "Sicurezza" in Esplora risorse). - Se neghi l'accesso in scrittura
IIS_IUSRS
, otterrai SecurityException quando provi a scrivere nella cartella (come previsto).
Quindi, tenendo conto di tutto ciò, come viene concesso l'accesso in scrittura all'utente "IIS APPPOOL \ AppPoolName"? Il processo w3wp.exe viene eseguito come questo utente, quindi cosa consente a questo utente di scrivere in una cartella a cui non sembra avere accesso esplicito?
Si noti che capisco che probabilmente è stato fatto per comodità, dal momento che sarebbe un problema concedere a un utente l'accesso a tutte le cartelle in cui è necessario scrivere se si esegue in Full Trust. Se si desidera limitare questo accesso, è sempre possibile eseguire l'applicazione in Trust medio. Sono interessato a scoprire come il sistema operativo e / o IIS consentono l'esecuzione di queste scritture, anche se sembra che non sia concesso alcun accesso esplicito al file system.