Назад | Перейти на главную страницу

Как запретить использование файлов web.config?

У меня есть сервер Windows 2008 R2 с установленным IIS7.5. Мне нужно предоставить пользователям доступ для чтения и записи к некоторому дереву каталогов через WebDAV. Те же пользователи также смогут получить доступ к тем же каталогам другими способами - FTP, SFTP, CIFS и т. Д.

Моя цель: я не хочу, чтобы кто-то мог загружать / изменять файлы web.config в опубликованных папках, тем самым изменяя поведение IIS. Если такой файл создается, IIS должен просто рассматривать его как любой другой файл.

Можно ли сконцентрировать все настройки сайта в applicationHost.config или в любом другом файле вне опубликованного дерева и заставить IIS игнорировать любые дополнительные файлы web.config?

Спасибо!

Нашел соответствующую настройку - она ​​называется allowSubDirConfig. Его можно указать либо в virtualDirectoryDefaults элемент (для всех сайтов) или в virtualDirectory элемент, в applicationHost.config файл.

Пример:

<configuration>
    <system.applicationHost>
       <sites>
            <site name="Default Web Site" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
                    <virtualDirectory path="/Temp" physicalPath="C:\TempRoot" allowSubDirConfig="false" />
                </application>
            <applicationDefaults applicationPool="DefaultAppPool" />
            <virtualDirectoryDefaults allowSubDirConfig="true" />
        </sites>
    </system.applicationHost>
</configuration>

web.config файлы в виртуальном каталоге / Temp проверяться не будут.

Есть и другие способы: http://www.sourceinaction.com/blog/web.config-dependencies-for-multiple-asp.net-web-applications

Посмотрите ответ Анила Руиа здесь: http://forums.iis.net/t/1161527.aspx?Disable+creating+web+configs+in+each+folder

Если вы перейдете в applicationhost.config и заблокируете все разделы (overrideModeDefault = "Deny"), то диспетчер IIS запишет все параметры конфигурации IIS в applicationhost.config (то же самое для параметра конфигурации asp.net и корневого файла web.config). Обратите внимание, что это полностью помешает кому-либо использовать файлы web.config для переопределения настроек IIS - и они могут кричать об этом.