autorização IIS vs. ASP.NET - maneira mais fácil de proteger arquivos estáticos?

StackOverflow https://stackoverflow.com/questions/1015173

  •  06-07-2019
  •  | 
  •  

Pergunta

Vamos dizer que eu tenho o seguinte em um web.config:

<allow roles="Developers" />
<deny users="*"/>

Este bloqueia o acesso on .aspx, .asmx e outros tipos de arquivos .NET, mas ele ainda está permitindo que usuários não autorizados para arquivos estáticos abertos como image.jpg. Eu entendo porque o web.config não é solicitado para informações de autorização quando alguém pede image.jpg (não é um tipo .NET e IIS pode ignorá-lo), mas como posso bloquear um aplicativo inteiro?

Advice eu encontrei on-line inclui:

  • criar uma entrada <location> para o diretório em questão e IIS / NET vai buscá-lo. (Ele não parece.)
  • você precisa escrever seu próprio filtro ISAPI e mapear extensões de todos os arquivos sensíveis a isso.
  • você não precisa escrever seu próprio filtro ISAPI -. Apenas mapear as extensões para aspnet_isapi.dll vai fazê-lo
  • Você não precisa editar o IIS em tudo, basta criar uma entrada httpHandler no web.config para suas extensões. (Eu realmente prefiro não tentar fazer isso para cada extensão no aplicativo.)

Nada disso funciona tão facilmente como eu me lembro de estar em Apache. Qual é a coisa mais simples que o trabalho poder pedir um visitante para uma senha e não servir quaisquer arquivos (estáticos ou não) para qualquer usuário que não tê-lo?

Foi útil?

Solução

Habilitar mapeamento curinga para IIS 6 . Isto irá enviar todos os arquivos através do gasoduto ASP.NET, formulário de garantia auth acontece para todos os arquivos. Ele vai prejudicar o desempenho (não sei como muito).

Para o IIS 5, hum, atualizar para o IIS 6.

Você lista 4 ideias:

  • local só funciona se você tiver mapeamento wild card (ou extensões específicas mapeadas).

  • Quem quer escrever um filtro ISAPI? Você não pode facilmente fazê-lo em langauges gerenciados menos que você tenha IIS7. E quem quer escrever uma c ++ filtro ISAPI?

  • mapeamento curinga funciona com a ressalva acima (performance)

  • Novamente, última opção não vai funcionar sem registrar essas extensões específicas com o IIS e roteamento-los através aspnet.

Outras dicas

Uma boa maneira simples é atualizar para IIS 7 tem agora um pipeline integrado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top