Recentemente, atualizamos para o IIS7 como um servidor Web principal e preciso de uma visão geral em termos de permissões. Anteriormente, ao precisar gravar no sistema de arquivos, eu daria ao usuário do AppPool (Serviço de Rede) acesso ao diretório ou arquivo.
No IIS7, vejo, como padrão, o usuário do AppPool está definido como ApplicationPoolIdentity
. Portanto, quando verifico o gerenciador de tarefas, vejo que uma conta de usuário chamada 'WebSite.com' está executando o processo do IIS ('Website.com' é o nome do site no IIS)
No entanto, essa conta de usuário não existe se eu tentar usá-la para conceder permissões. Então, como determino qual usuário também concederá as permissões?
Editar =================================================== =============================
Veja abaixo o problema na captura de tela. Nosso site (www.silverchip.co.uk) é executado com o nome de usuário SilverChip.co.uk. No entanto, quando adiciono pemissions, esse usuário não existe!
================================= Veja a imagem do AppPool
fonte
Respostas:
ApplicationPoolIdentity é realmente a melhor prática a ser usada no IIS7 +. É uma conta criada dinamicamente e sem privilégios. Para adicionar segurança do sistema de arquivos a um pool de aplicativos específico, consulte "Identidades do pool de aplicativos" do IIS.net . A versão rápida:
Se o pool de aplicativos tiver o nome "DefaultAppPool" (substitua este texto abaixo se tiver um nome diferente)
fonte
IIS AppPool\silverchip.co.uk
. Porém, ainda não tentei períodos em nomes de segurança - convém alterá-lo para algo sem pontuação.enable load user profile
paratrue
nas definições do pool de aplicativos. E somente após essa configuração eu era capaz de executar o aplicativo. Portanto, atualize suas instruções e adicione o 9º ponto.Lembre-se de usar o nome local do servidor, não o nome do domínio, ao resolver o nome
(apenas um lembrete, porque isso me deixou um pouco confuso):
fonte
Dar acesso ao usuário IIS AppPool \ YourAppPoolName pode não ser suficiente com as configurações padrão do IIS.
No meu caso, eu ainda tinha o erro Erro HTTP 401.3 - Não autorizado depois de adicionar o usuário do AppPool e foi corrigido apenas após adicionar permissões ao usuário IUSR .
Isso é necessário porque, por padrão, o acesso anônimo é feito usando o IUSR . Você pode definir outro usuário específico, o Pool de aplicativos ou continuar usando o IUSR, mas não se esqueça de definir as permissões apropriadas.
Créditos a esta resposta: Erro HTTP 401.3 - Não autorizado
fonte
No Windows Server 2008 (r2), você não pode atribuir uma identidade de pool de aplicativos a uma pasta através de Propriedades-> Segurança. Você pode fazer isso através de um prompt de comando do administrador, usando o seguinte:
fonte
Parte A: Configurando seu pool de aplicativos
Suponha que o pool de aplicativos tenha o nome 'MyPool' Vá para 'Configurações avançadas' do pool de aplicativos no Gerenciador do IIS
Role para baixo até 'Identidade'. Tentar editar o valor exibirá uma caixa de diálogo. Selecione 'Conta interna' e, abaixo dela, selecione 'ApplicationPoolIdentity'.
Algumas linhas abaixo de 'Identidade', você deve encontrar 'Carregar perfil de usuário'. Este valor deve ser definido como 'True'.
Parte B: configurando seu site
Parte C: configurando sua pasta
A pasta em questão é C: \ Whatever
Agora você deve poder navegar no site
fonte
Top resposta de Jon Adams
Aqui está como implementar isso para o pessoal do PowerShell
fonte
Apenas para aumentar a confusão, a caixa de diálogo Permissões Efetivas (Windows Explorer) não funciona para esses logons. Eu tenho um site "Umbo4" usando autenticação de passagem e observei as Permissões efetivas do usuário na pasta raiz do site. O teste Verificar nomes resolveu o nome "IIS AppPool \ Umbo4", mas as Permissões efetivas mostram que o usuário não tinha permissões na pasta (todas as caixas de seleção desmarcadas).
Excluí esse usuário da pasta explicitamente, usando a guia Segurança do Explorer. Isso resultou na falha do site com um erro HTTP 500.19, conforme o esperado. As Permissões efetivas, no entanto, pareciam exatamente como antes.
fonte
Corrigi todos os meus problemas do asp.net simplesmente criando um novo usuário chamado IUSER com uma senha e adicionei o Serviço de Rede e Grupos de Usuários. Em seguida, crie todos os sites e aplicativos virtuais e defina a autenticação como IUSER com sua senha. Defina o acesso de arquivos de alto nível para incluir o IUSER e o BAM. Foi corrigido pelo menos 3-4 problemas, incluindo este.
Dave
fonte