У меня есть каталог текстовых файлов на IIS. Я хочу, чтобы этот каталог был скрыт.
Я установил web.config следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authorization>
<deny users="*" /> <!-- Denies all users -->
</authorization>
</system.web>
</configuration>
Но я все еще могу видеть полный список каталогов с файлами, а также получать доступ к файлам через Интернет.
Что я неправильно установил?
Я тоже пробовал это:
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="Administrators" />
</authorization>
</security>
</system.webServer>
Но это тоже мне не помогло
Узел system.web влияет только на файлы asp.net, файлы * .txt не затрагиваются.
Чтобы скрыть файлы от всех пользователей, в IIS 7.x есть несколько способов, вот два:
В web.config внутри рассматриваемого каталога:
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".txt" allowed="false" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
или
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="directoryname" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
Первый скрывает все текстовые файлы, второй скрывает весь путь URL-адреса, оба возвращают пользователю 404.
Если вы хотите разрешить определенным пользователям доступ к файлам, эти методы не будут работать. Какую аутентификацию вы используете?