2009-10-27 4 views
8

Dans IIS 7, j'essaye de refuser l'accès à tous les fichiers avec l'extension .xml pour tous les utilisateurs.Puis-je utiliser des caractères génériques dans l'attribut de chemin d'emplacement web.config?

J'ai essayé le paramètre suivant dans mon fichier web.config:

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

Mais obtenir des résultats de fichier dans une erreur de serveur interne.

Cela fonctionne si je refuse l'accès aux fichiers individuels mais cette solution ne m'achète pas beaucoup car je ne connais pas tous les fichiers .xml à l'avance.

+0

double possible de [web.config: caractères génériques dans l'emplacement et l'autorisation] (http://stackoverflow.com/questions/4375208/web-config- wildcards-in-location-and-authorization) –

Répondre

8

Essayez ceci:

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

par la façon dont vous pourriez aussi stocker tous vos fichiers xml dans le répertoire App_Data. Stocker des fichiers de tout type dans ce répertoire ne sera pas servi sur le web.

+0

Merci App_Data est ce que je vais utiliser. –

+0

Cette même approche peut-elle être appliquée ici: https://stackoverflow.com/questions/47096577/servicestack-api-documentation-in-swagger-ui-behind-the-closed-doors? – ShP

5

Une autre façon est d'utiliser un filtre de demande:

<system.webServer> 
    <security> 
    <requestFiltering> 
     <fileExtensions> 
     <add fileExtension=".xml" allowed="false" /> 
     </fileExtensions> 
    </requestFiltering> 
    </security> 
</system.webServer> 
Questions connexes