J'ai un site Web et je voudrais comme Deny Directory Browser à partir d'un fichier web.config.
Voici le code que j'utilise placé dans le ROOT. Ne fonctionne pas. Je le teste localement, donc avec l'URL LIKE http: // localhost: 3214/ je peux toujours parcourir le répertoire du système de gestion de contenu.
Merci pour votre aide!
<configuration>
<location path="Cms">
<system.webServer>
<directoryBrowse enabled="false" />
</system.webServer>
</location>
</configuration>
Quelques ressources:
http://www.expta.com/2008/03/configuring-virtual-directories-with.html
Premièrement: tout ne fonctionne pas dans un bloc <location>
.
Je ne trouve pas d'affirmation positive que <system.webServer>
ne soit pas pris en charge dans un <location>
, mais je ne trouve aucun cas où il est suggéré de l'autoriser. La preuve en est dans le machine.config
(global) où la section system.webserver
est définie pour utiliser le gestionnaire IgnoreSection
: ie. il n'est pas traité par l'implémentation standard System.Configuration
, et c'est cette implémentation standard de la gestion de la configuration qui prend en charge <location>
.
Essayez d'ajouter un web.config
dans le dossier Cms
avec l'élément directoryBrowse
pour confirmer que la navigation est bloquée.
Gibbok, rien n'est faux ici, pas de panique :)
En supposant que vous naviguez sur votre site Web à partir du serveur intégré à l'intérieur de Visual Studio, il s'agit généralement d'un cas normal.
Je suis presque sûr que si vous passez à IIS avec le code ci-dessus, la navigation dans les répertoires se comportera exactement comme vous le souhaitez.
Essayez et hébergez ce site dans IIS, et laissez-nous savoir ce qui s'est passé, Merci.
J'essayais le même code. Ce que vous avez est en fait correct. Voici la référence référence .
Bien sûr, cela ne fonctionnait pas pour moi et je ne pouvais pas comprendre pourquoi, jusqu'à ce que je lise le post de Richard et que je me souvienne que quelqu'un a mis un fichier web.config dans ce répertoire. Ce fichier annule le comportement du fichier web.config principal. Dans le sous-répertoire web.config, l'option directoryBrowse était explicitement activée (ainsi que BEAUCOUP d'autres gestionnaires, beurk!). Supprimez ce fichier et ce que vous avez ci-dessus fonctionne pour moi. En fait, il transmet la demande au prochain gestionnaire, ce qui est exactement ce que je voulais.
J'utilise IIS 7 sur mon ordinateur local.
la directive <directoryBrowse> contrôle la liste du répertoire via le protocole http uniquement: http://msdn.Microsoft.com/en-us/library/ms691327%28v=vs.90%29. aspx
Cela n'aura aucun effet sur le code, en essayant d'accéder au répertoire depuis n'importe quelle autre application (ou même la vôtre).
@Edit: après la modification et si je vous ai bien compris - je pense, ce que vous entendez par Refuser l'explorateur d'annuaires est la fonctionnalité souhaitée: affichez le contenu du répertoire dans un chemin spécifié à l'aide du navigateur. Et oui, cela ne fonctionnera probablement pas sur le serveur de développement local. Essayez sur IIs!