2012-06-13 3 views
4

Есть ли способ настроить IIS 7.0+ (или 7.5+) таким образом, чтобы для определенных путей фильтрация запросов была полностью отключена. То есть,Отключить фильтрацию запросов IIS для определенных путей

http://host.local/foo/bar.cs 

запрещено (с выступающей *.cs файлов явно запрещено в applicationHost.config), но

http://host.local/foo/allow-all/bar.cs 

допускается.

ответ

5

В вашем allow-all каталоге, вы можете создать файл web.config со следующей конфигурацией:

<configuration> 
    <system.webServer> 
     <security> 
      <requestFiltering> 
       <fileExtensions> 
        <remove fileExtension=".cs" /> 
       </fileExtensions> 
      </requestFiltering> 
     </security> 
     <staticContent> 
      <mimeMap fileExtension=".cs" mimeType="text/plain" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

Эта конфигурация удаляет .cs расширение из фильтрации запросов. Кроме того, для того, чтобы IIS правильно обслуживал контент, ему нужен MIME-тип, поэтому расширение .cs добавляется как текст/plain.

Эти изменения также применимы ко всем дочерним каталогам allow-all. Эта конфигурация работает со встроенным пулом приложений. Классический может потребовать дополнительных изменений, так как есть HTTP-обработчики, которые явно запрещают также .cs.

+0

Это хорошо, но у меня нет пути '/ allow-all' как такового: это динамический URL-адрес, управляемый маршрутизацией ASP.NET MVC. Возможно ли это в этих условиях. –

+0

@Anton Если это динамично, то лучше попробуйте сами их обслуживать - создайте правило перезаписи URL-адресов на какой-то скрипт, который будет читать и отправлять содержимое запрашиваемого файла в браузер. Я просто не уверен, что модуль перезаписи URL выполняется до или после фильтрации запросов - я думаю, что после (для реальных/существующих файлов), но это может быть не для несуществующих URL-адресов. – LazyOne

+0

@LazyOne переписывание URL-адресов, похоже, происходит после фильтрации запроса. Или, по крайней мере, пользовательский обработчик, который я установил, задыхался, пока я не добавил в свои фильтры для рассматриваемого пути. – jklemmack

Смежные вопросы