Запретить все файлы в каталоге через настройку web.config
В качестве теста я пытаюсь использовать web.config для контроля безопасности следующими способами:
Запретить доступ ко всем файлам в каталоге, кроме определенного файлаРазрешить доступ ко всем файлам в каталоге, кроме определенного файлаПоэтому я настроил web.config следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- Deny access to all files in a directory, except for a specific file -->
<location path="NonAccessibleDirectory">
<system.web>
<authorization>
<deny users="?"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="NonAccessibleDirectory/AccessibleFile.html">
<system.web>
<authorization>
<allow users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>
<!-- Allow access to all files in a directory, except for a specific file -->
<location path="AccessibleDirectory/NonAccessibleFile.html">
<system.web>
<authorization>
<deny users="?"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
</configuration>
Как и ожидалось:
Если я перехожу к недоступному каталогу и не указываю файл, я получаю отказ в доступеЕсли я перехожу к доступному каталогу и не указываю файл, я вижу список файловПроблемы, которые у меня возникают:
Если я зайду в недоступный каталог и укажу файл, я смогу его просмотреть, и я ожидал, что ему не будет предоставлен доступЕсли я перейду к доступному каталогу и укажу файл, к которому мне запрещен доступ через web.config, я все равно смогу его просмотреть, и я ожидал, что ему не будет предоставлен доступЭми, я настраиваю вещи неправильно?