Aqui está um problema com o IIS 7.5 e o ASP.NET que eu tenho pesquisado e chegado a lugar nenhum. Qualquer ajuda seria muito apreciada.
Minha pergunta é: usando o ASP.NET no IIS 7.5, como o IIS e / ou o sistema operacional permitem que o aplicativo Web grave em uma pasta como C:\dump
quando executado sob confiança total? Como é que não preciso adicionar explicitamente o acesso de gravação para o usuário do pool de aplicativos (neste caso ApplicationPoolIdentity
)?
Isso eu sei:
- No IIS 7.5, a identidade padrão para um pool de aplicativos é
ApplicationPoolIdentity
. ApplicationPoolIdentity
representa uma conta de usuário do Windows chamada "IIS APPPOOL \ AppPoolName", criada quando o Pool de Aplicativos é criado, em que AppPoolName é o nome do Pool de Aplicativos.- O usuário "IIS APPPOOL \ AppPoolName" é por padrão um membro do
IIS_IUSRS
grupo. - Se você estiver executando sob Full Trust, sua aplicação web pode escrever para muitas áreas do sistema de arquivos (excluindo pastas como
C:\Users
,C:\Windows
, etc). Por exemplo, seu aplicativo terá acesso para gravar em algumas pastas, comoC:\dump
,. - Por padrão, o
IIS_IUSRS
grupo não recebe acesso de leitura ou gravaçãoC:\dump
(pelo menos, o acesso visível na guia "Segurança" no Windows Explorer). - Se você negar o acesso de gravação
IIS_IUSRS
, receberá uma SecurityException ao tentar gravar na pasta (conforme o esperado).
Portanto, levando tudo isso em consideração, como o acesso de gravação é concedido ao usuário "IIS APPPOOL \ AppPoolName"? O processo w3wp.exe é executado como esse usuário. Portanto, o que permite que esse usuário grave em uma pasta à qual parece não ter acesso explícito?
Observe que eu entendo que isso provavelmente foi feito por uma questão de conveniência, pois seria difícil conceder ao usuário acesso a todas as pastas em que ele precisa gravar se você estiver executando no Full Trust. Se você deseja limitar esse acesso, sempre pode executar o aplicativo em Média Confiança. Estou interessado em descobrir como o sistema operacional e / ou o IIS permitem que essas gravações ocorram, mesmo que pareça não haver acesso explícito ao sistema de arquivos concedido.