2009-10-27 8 views
8

W IIS 7 próbuję odmówić dostępu do wszystkich plików z rozszerzeniem .xml dla wszystkich użytkowników.Czy mogę używać symboli wieloznacznych w atrybucie ścieżki lokalizacji web.config?

Próbowałem następujące ustawienie w moim pliku web.config:

<location path="*.xml"> 
    <system.web> 
     <authorization> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 

Ale potem coraz żadnych wyników plików w wewnętrznego błędu serwera.

Działa, gdy odmawiam dostępu do poszczególnych plików, ale to rozwiązanie nie kupuje zbyt wiele, ponieważ nie znam wszystkich plików .xml z góry.

+0

Możliwy duplikat [Web.config: symbole wieloznaczne w miejscu i autoryzacji] (http://stackoverflow.com/questions/4375208/web-config- symbole wieloznaczne-w-lokalizacji-i-autoryzacji) –

Odpowiedz

8

Spróbuj tego:

<configuration> 
    <system.web> 
     <httpHandlers> 
      <add path="*.xml" verb="*" 
      type="System.Web.HttpNotFoundHandler" /> 
     </httpHandlers> 
    </system.web> 
</configuration> 

Przy okazji można alternatywnie przechowywać wszystkie swoje pliki xml w katalogu App_Data. Przechowywanie plików dowolnego typu w tym katalogu nie będzie wyświetlane w Internecie.

+0

Dzięki App_Data będę używać. –

+0

Czy można zastosować to samo podejście: https://stackoverflow.com/questions/47096577/servicestack-api-documentation-in-swagger-ui-behind-thered-doed-doors? – ShP

5

Innym sposobem jest użycie filtru żądanie:

<system.webServer> 
    <security> 
    <requestFiltering> 
     <fileExtensions> 
     <add fileExtension=".xml" allowed="false" /> 
     </fileExtensions> 
    </requestFiltering> 
    </security> 
</system.webServer> 
Powiązane problemy