Блокировать доступ к подкаталогу с помощью Web.config

Блокировать доступ к подкаталогу с помощью Web.config

У меня есть подкаталог в моем проекте ASP.NET, содержащий файлы утилит. Они нужны коду во время выполнения, но я не хочу, чтобы они были видны в Интернете.

Какой синтаксис используется в файле Web.config для блокировки доступа всех пользователей к одному подкаталогу и всему его содержимому?

решение1

В IIS 7 появилась новая функция "фильтрации запросов". Вероятно, вы захотите использовать конфигурацию скрытых сегментов:

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

Это вызываетhttp://вашсайт/binне быть обслуживаемым (ноhttp://yoursite/binaryдо сих пор работает)

Проверить: http://learn.iis.net/page.aspx/143/how-to-use-request-filtering

решение2

Ваша проблема в том, что если IIS просто возвращает файлы, ASP.Net никогда не получит шанса вмешаться. Я считаю, что это можно сделать, включив аутентификацию на основе форм и повозившись с этим, но я бы просто переместил файлы за пределы папки wwwroot.

Дж.Р.

решение3

Это должно сработать:

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

решение4

Это старый вопрос, но это простое вложение web.configдля любого каталога в пути веб-сервера. Он удаляет все роли пользователей, затем устанавливает доступ по умолчанию на deny. Просто и не требует настройки.

<?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>

Связанный контент