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

8

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

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

Джоэл Спольски
источник

Ответы:

15

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

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

Это делает http: // yoursite / bin недоступным для обслуживания (но http: // yoursite / binary все еще работает)

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

MattB
источник
2
Но это также заблокирует ваш сайт / bla / bin / test .... :-(
Карстен Шютте
Не ответ на вопрос, но также полезный для темы под рукой. Вы также можете использовать HttpHandlers для блокировки определенных расширений файлов, которые вы хотите. Это хорошая практика , чтобы сделать также, например , блокировать источник / файлы базы данных и т.д.
вальцы
1

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

JR

Джон Ренни
источник
0

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

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>
Джон Раш
источник
2
Это не работает, потому что файлы являются файлами .txt ... Я думаю, что Джон Ренни прав, что ASP.NET не имеет возможности вмешиваться в файлы .txt.
Джоэл Спольски
Это хорошо, я всегда держал файлы, обслуживаемые через обработчики ASP.NET, в своих каталогах, доступных через Интернет, поэтому я никогда не сталкивался с этой проблемой
Джон Раш