Ich konnte keine Möglichkeit finden, IIS zu konfigurieren, aber ich fand eine Problemumgehung mit einem generischen ASP.net-Handler (http://forums.asp.net/p/1478217/3453189.aspx, scrollen Sie nach unten auf die Antwort von gvlahakis).
Erstellen Sie zunächst einen generischen Handler, 404 zurückzugibt:
public class DirectoryBrowsingAttempt : IHttpHandler
{
public bool IsReusable {get {return true;}
public void ProcessRequest(HttpContext context) {context.Response.StatusCode = 404;}
}
Zweitens Tags Punkt Durchsuchen von Verzeichnissen auf den web.config hinzufügen versucht, den oben Handler, einer für jeden Ordner, den Sie schützen musst, in den Abschnitten httpHandlers und system.webServer. Die folgenden Tags schützen einen Ordner namens "js" vom Stammverzeichnis.
<httpHandlers>
<add verb="*" path="js/*" validate="false" type="MyNameSpace.DirectoryBrowsingAttempt"/>
</httpHandlers>
<system.webServer>
<handlers>
<add name="NoAccess" verb="*" path="js/*" preCondition="integratedMode" type="MyNameSpace.DirectoryBrowsingAttempt"/>
</handlers>
Diese Problemumgehung verhält sich anders in IIS 6 vs. IIS 7. Zum Beispiel habe ich einen Ordner geschützt, die die Website der Bilder auf diese Weise enthalten: IIS 6 noch die Bilder geliefert in diesem Ordner enthaltenen Web-Seiten (das gewünschte Verhalten, ich möchte nur Verzeichnis-Browsing-Versuche blockieren); IIS 7 blockierte sie.
Es gibt wahrscheinlich Möglichkeiten, die Registerkarte "Speicherort" in der Datei web.config zu verwenden, um Bilder durch Überschreiben der Standard-Bild-Handler zu ermöglichen, aber ich habe keine Lust, so weit in den Kaninchenbau gehen.
ich bin nicht 100% sicher, aber ich denke das ist Off-Topic und gehört zu [SuperUser] (http://superuser.com/) – makim
Ich würde ServerFault anstelle von SuperUser empfehlen, da es sich um eine Server-Konfigurationsfrage handelt –
Ich habe die Frage auf ServerFault gestellt auf Ihren Vorschlag, danke, wusste nicht über diese Website. –