“401 Unauthorized” em um diretório

86

Presumo que seja um erro do IIS, pois isso não acontecerá se eu executar o projeto em minha máquina local.

Eu tenho minhas folhas de estilo em ~/Content/css

Todos os arquivos nesse diretório não carregam na página e, quando navego diretamente para eles, recebo um erro de servidor:

401 - Não autorizado: Acesso negado devido a credenciais inválidas.

Você não tem permissão para visualizar este diretório ou página usando as credenciais fornecidas.

Isso só acontece com esse diretório, não tenho problemas para acessar os outros arquivos. Preciso fazer algo no IIS7 para impedir isso?

Steven
fonte

Respostas:

46

É provável que você não tenha a permissão IUSR_ computername nessa pasta. Acabei de fazer uma verificação rápida e parece que você encontrará as informações de que precisa aqui .

Se este não for o caso, seu nome de usuário e senha serão solicitados pelo navegador? Nesse caso, pode ser que o IIS esteja configurado para usar apenas a autenticação integrada, conforme descrito aqui .

m.edmondson
fonte
4
Se você estiver usando um pool de aplicativos para gerenciar seu acesso ao banco de dados / sistema de arquivos, não faça isso. Continue lendo para ver a resposta de imanabidi abaixo.
Ryan Shillington
obrigado, no meu caso acabei de adicionar todos com controle total
MorenajeRD
8
support.microsoft.com/kb/313075 - Esta página não existe mais. @ m.edmondson
Divya,
294
  1. Abra o IIS e selecione o site que está causando 401
  2. Selecione a propriedade de autenticação no cabeçalho do IIS
  3. Selecione Autenticação Anônima
  4. Clique com o botão direito nele, selecione Editar e escolha Identidade do pool de aplicativos
  5. Reinicie o site e deve funcionar
Jasenkoh
fonte
13
Funciona, mas por quê? Você pode explicar um pouco mais?
nthapa
2
Isso parece funcionar porque, por padrão, o "usuário específico" para a autenticação anônima é IUSR, conforme mencionado na resposta aceita. No entanto, a identidade definida no pool de aplicativos deve ter permissões para todo o site ou o site não carregaria. Portanto, embora minha conta IUSR não tivesse acesso (na verdade, parece não existir), a conta que o pool de aplicativos está usando tem.
Johann
6
Isso funciona, mas o que é confuso é que costumava funcionar bem por cerca de 2 anos e hoje, sem motivo conhecido, parou de funcionar ... sua solução corrigiu.
Serj Sagan,
Passei horas com este problema e sem sorte até que encontrei isso! Eu tinha um aplicativo da Web MVC 5 que, uma vez publicado no modo de lançamento e, em seguida, carregado o site no Chrome, o conteúdo carregava, mas os estilos não. Os links estão lá e os caminhos estavam corretos, porém todos estavam vazios! Essa correção resolveu meu problema.
GIVE-ME-CHICKEN
no meu caso, eu só tive que habilitar a autenticação anônima, pois ela foi desabilitada por padrão quando o aplicativo foi criado
Paulo,
14
  • Abra o IIS
  • selecione o local onde você está enfrentando o problema

  • Selecione abaixo

insira a descrição da imagem aqui

- Clique com o botão direito em Autenticação Anônima e clique em editar e siga abaixo

insira a descrição da imagem aqui

Siddhartha
fonte
5

Você não tem permissão para visualizar este diretório ou página usando as credenciais fornecidas.

Isso aconteceu apesar do usuário já estar autenticado via Active Directory.

Pode haver várias causas para o erro de acesso negado, mas se você acha que já configurou tudo corretamente em seu aplicativo da web, pode haver um pequeno detalhe que foi esquecido. Certifique-se de dar a permissão adequada para usuários autenticados para acessar o diretório do seu aplicativo da web.

Aqui estão as etapas que executei para resolver esse problema.

  1. Clique com o botão direito do mouse no diretório onde o aplicativo da web está armazenado, selecione Propriedades e clique na guia Segurança.

  2. Clique em Clique em Editar… e depois no botão Adicionar…. Digite Usuários autenticados em Digite os nomes dos objetos a serem selecionados e, em seguida, clique no botão Adicionar . Digite Usuários autenticados em Digite os nomes de objeto a serem selecionados.

  3. Clique em OK e você verá Usuários autenticados como um dos nomes de usuário. Dê as permissões adequadas na caixa Permissões para usuários autenticados na extremidade inferior, se ainda não estiverem marcadas.

  4. Clique em OK duas vezes para fechar a caixa de diálogo. Deve entrar em vigor imediatamente, mas se você quiser ter certeza, pode reiniciar o IIS para seu aplicativo da web.

Atualize seu navegador e ele deve exibir a página da web agora.

Espero que isto ajude!

Kent Aguilar
fonte
2

Você precisa verificar as permissões de pasta em seu servidor e verificar se a conta que você está usando para executar seu aplicativo tem acesso a essa pasta.

Gaz Winter
fonte
0

Para mim, o acesso de usuário anônimo foi bom no nível do servidor, mas variou em apenas uma das minhas pastas "virtuais".

Levei um pouco de dificuldade e, em seguida, a ajuda de um colega para saber que o IIS também tem configurações de "autenticação" no nível da pasta virtual - espero que isso ajude alguém com minha situação.

user6096790
fonte
0

No nosso caso, foi a autenticação integrada do Windows especificada no aplicativo web.config

MAS o módulo windows-auth não foi instalado na máquina IIS.

Apenas adicionando outro motivo possível.

Alex
fonte
-4

Outra correção simples que encontrei foi excluir o site IIS local (de dentro do Gerenciador do IIS) e, em seguida, recriar o diretório virtual a partir de "Propriedades" do seu projeto da web no Visual Studio.

KWondra
fonte