Está bem. Aqui, estamos tentando configurar um site ASP clássico no IIS 7.5 no Windows Server 2008 R2. Há uma pasta chamada dbc na raiz do site e possui um arquivo usado para ler e gravar certas informações enquanto todas as páginas são processadas.
O problema é que, se eu conceder permissões de gravação IUSR e permissões de gravação IIS_IUSRS ou permissões de gravação DefaultAppPool, recebo o "Acesso ao caminho 'E: .. \ websiteroot \ dbc \ filename.txt' será negado"
Mas se eu conceder acesso a todos de gravação nessa pasta dbc, não recebo nenhum erro, tudo parece perfeito.
Mais informações: O site é executado no modo Pipeline clássico, a autenticação anônima está ativada (talvez seja a única autenticação ativada). E eu tentei a autenticação anônima usando a conta IUSR e a identidade do pool de aplicativos. No meu caso, ApplicationPoolIdentity é a identidade para a autenticação do site. Usamos um COM + para E / S de arquivo. E o clássico ASP Server.CreateObject para instanciar um objeto a partir dele. O COM + é executado como um serviço de rede.
Pensamentos? Não quero conceder permissão de gravação para TODOS. Estou esquecendo de algo?
RESOLVIDO: Aqui está o que eu fiz.
Meu site chamado CipherDemo estava sendo executado em um AppPoolIdentity no IIS 7.5, que poderia ser localizado pelo Identity IIS AppPool \ CipherDemo. Eu usei o ICACLS para conceder permissões de RW nessa pasta.
e o COM + que realmente executava o arquivo E / S estava sendo executado sob a Identidade do Serviço de Rede. Quando eu estava usando o Monitor de Processo para rastrear o Erro de Acesso Negado, constatou-se que o Serviço de Rede tem apenas uma permissão de Leitura nessa pasta.
Eu usei o ICACLS "nome da pasta" / concessão: r "NT AUTHORITY \ NETWORKSERVICE" :( OI) (CI) RXW / T para conceder acesso de gravação a essa pasta.
E resolveu.
Eu tinha a intenção de que, como o site é executado como Identidade CipherDemo, essa será a conta que será usada para acessar o arquivo via COM +. Mas é embaraçoso descobrir que o COM + ainda funcionaria em seus próprios limites de identidade.
fonte
Você pode adicionar a conta através da GUI do NTFS digitando-a diretamente. O nome está no formato de
IIS APPPOOL\<<app pool name>>
, por exemploIIS APPPOOL\DefaultAppPool
. (consulte este artigo de suporte da Microsoft )Uma solução alternativa: uso a conta "Serviço de rede" como usuário do pool de aplicativos, concedendo permissão de gravação.
fonte
Se você deseja conceder apenas a permissão WRITE da pasta para o usuário específico, também deve alterar 'Identidade do usuário anônima' do site para 'Usuário específico', não 'Identidade do pool de aplicativos'.
fonte