Blockieren des Zugriffs auf das Unterverzeichnis mithilfe von Web.config

Blockieren des Zugriffs auf das Unterverzeichnis mithilfe von Web.config

Ich habe in meinem ASP.NET-Projekt ein Unterverzeichnis, das Dienstprogrammdateien enthält. Sie werden vom Code zur Laufzeit benötigt, aber ich möchte nicht, dass sie im Web sichtbar sind.

Wie lautet die Syntax in einer Web.config-Datei, um allen Benutzern den Zugriff auf ein einzelnes Unterverzeichnis und seinen gesamten Inhalt zu sperren?

Antwort1

IIS 7 verfügt über eine neue Funktion zum Filtern von Anforderungen. Sie möchten wahrscheinlich die Konfiguration für versteckte Segmente verwenden:

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <hiddenSegments>
     <add segment="BIN"/>
    </hiddenSegments>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>

Dies bewirkthttp://IhreSite/binnicht bedienbar zu sein (aberhttp://IhreSite/binärfunktioniert noch)

Kasse: http://learn.iis.net/page.aspx/143/how-to-use-request-filtering

Antwort2

Ihr Problem ist, dass ASP.Net nie die Möglichkeit hat, einzugreifen, wenn IIS die Dateien einfach zurückgibt. Ich glaube, das lässt sich durch die Aktivierung der formularbasierten Authentifizierung und einiges Herumprobieren erreichen, aber ich würde die Dateien einfach außerhalb des wwwroot-Ordners verschieben.

JR

Antwort3

Das sollte funktionieren:

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

Antwort4

Es ist eine alte Frage, aber dies ist ein einfaches Drop-In web.configfür jedes Verzeichnis im Webserverpfad. Es entfernt alle Benutzerrollen und setzt dann den Standardzugriff auf Verweigern. Einfach und keine Konfiguration erforderlich.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <authorization>
                <remove users="*" roles="" verbs="" />
                <add accessType="Deny" users="*" />
            </authorization>
        </security>
    </system.webServer>
</configuration>

verwandte Informationen