Ознакомьтесь с этой статьей службы поддержки MS, чтобы узнать, как этого добиться: КАК: Использование ASP.NET для защиты типов файлов .
Это включает в себя настройку IIS для пересылки этих запросов в ASP.NET, а затем настройку web.config для блокировки файлов нужного типа, например: (nb это работает для вашего компьютера разработчика и до IIS7 - обязательно посмотрите ниже)
<system.web>
<httpHandlers>
<add verb="*" path="*.ini" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
</system.web>
Согласно странице элемента httpHandlers , следующие расширения по умолчанию запрещены .NET 2.0 (.ini не является одним из них):
*. Asax, * .ascx, * .master, * .skin, * .browser, * .sitemap, * .config, * .cs, * .csproj, * .vb, * .vbproj, * .webinfo , * .licx, * .resx, * .resources, * .mdb, * .vjsproj, * .java, * .jsl, * .ldb, * .dsdgm, * .ssdgm, * .lsad, * .ssmap, * .cd, * .dsprototype, * .lsaprototype, * .sdm, * .sdmDocument, * .mdf, * .ldf
РЕДАКТИРОВАТЬ: это относится к версиям IIS до IIS 7.0. В IIS 7.0 добавлен дополнительный режим работы, называемый интегрированным режимом (по умолчанию для ASP.NET), который требует, чтобы обработчики помещались в <system.webServer>/<handlers>
вместо <system.web>/<httpHandlers>
. Я добавил дополнительную информацию и ссылки на ответ @ awe на этой странице, за подробностями обращайтесь к нему.
ВАЖНО! для IIS 7.0 или более поздней версии
Как указано в правке, вам нужно поместить элемент <add>
в другое место , а правилу тоже нужно имя - если вы не укажете имя, вы получите 500 Internal Error при перезапуске
<system.webServer>
<handlers>
<add name="IgnoreIni" verb="*" path="*.ini" type="System.Web.HttpForbiddenHandler" />
</handlers>
</system.webServer>