Autorização de URL com identidade MVC e ASP.NET

Desejo proteger pastas e recursos específicos no meu aplicativo que estejam fora das rotas do meu aplicativo mvc. Desejo que esses recursos estejam disponíveis apenas para usuários autenticados (qual papel não é de concepção, desde que sejam autenticados)

Inicialmente, parecia que oUrlAuthorizationModule seria a resposta. Eu segui este artigo,Noções básicas sobre autorização de URL do IIS 7.0, e posso fazer com que o módulo funcione no sentido de que ele responde aos elementos de configuração noweb.config.

Meu problema atual é que eupensar está decretando regras com base no usuário anônimo no IIS e não no usuário autenticado noidentidade asp.net.

Ambiente de teste

Eu uso um padrãohtml arquivo para teste em vez de tentar carregar um script, pois isso também seria carregado fora do pipeline do MVC.

NoVisual Studio 2015.Novo padrão.net 4.6.2 projeto webModelo MVCAutenticação =Individual User AccountsIIS 8 (para testar fora do Visual Studio)Autenticação -> Autenticação Anônima (ativada)

adicionar àweb.config

<configuration>
...
<location path="Data">
  <system.webServer>
    <security>
      <authorization>
        <clear/>
        <add accessType="Deny" users="*"/>
        <add accessType="Allow" users="?"/>
      </authorization>
    </security>
  </system.webServer>
</location>
...
</configuration>

Adicionar à estrutura de pastas

/Data/Protected.html // this file just has some basic Hello World content to display so you can see if it is loaded or not.
Resultados ObservadosCom essa configuração, tudo noData O caminho é sempre negado, não importa se o usuário está autenticado ou não.O mesmo acontece se eu mudar as 2 linhas paraDeny eAllow noweb.config.Se eu remover completamente a linha comDeny o acesso será sempre permitido, mesmo quando o usuário não estiver autenticado.Se eu adicionar uma função e usarroles com o nome da função em vez deusers atribuir o papel também é completamente ignorado.O que agora?

o que estou perdendo? Como posso obter oAutorização de URL módulo para trabalhar com MVC / WebAPI eIdentidade do ASP.NET Individual user accounts ou isso simplesmente não é possível?

Também estou aberto a idéias alternativas, talvez a resposta seja escrever umHttpModule ouHttpHandler?

Notas laterais

Porquê e especificidades

Esses recursos são arquivos javascript. Em resumo, apenas uma parte dos scripts deve estar disponível para usuários não autenticados. Existem 2 diretórios na raiz, um para a parte autenticada do aplicativo e outro para a parte não autenticada do aplicativo. O motivo disso não tem nada a ver com a autorização ou segurança do usuário no aplicativo, é limitar a área de superfície exposta do aplicativo a solicitações não autenticadas.

questionAnswers(1)

yourAnswerToTheQuestion