IIS Динамические ограничения IP в расположении web.config

Я пытаюсь использовать ограничения IIS Dynamic IP для ограничения запросов с того же IP. У меня работает модуль, и запросы хорошо регулируются, если я изменяю настройки динамических ограничений из интерфейса IIS. Это хорошо, однако мне нужно иметь разные тарифы на разные URL. Логин должен быть, например, более строгим, чем статические ресурсы. Я пытаюсь использовать locations в web.config для достижения этой цели.

<configuration>
  <location path="foo">
  <system.webServer>   
    <security>     
      <dynamicIpSecurity enableLoggingOnlyMode="true">       
         <denyByRequestRate enabled="true" maxRequests="1" 
            requestIntervalInMilliseconds="5000" />
      </dynamicIpSecurity>
   </security>  
  </system.webServer> 
  </location>
</configuration>

К сожалению, это не относится. Я совершенно уверен, что это не имеет никакого отношения к моему приложению, потому что оно не работает и в статической сети с одним HTML-файлом. Я также совершенно уверен, что путь к местоположению правильный, потому что запросы будут заблокированы, если я добавлю ...<deny users="*" />,

1 ответ

Решение

Это невозможно. Из описания модуля:

Этот модуль можно настроить таким образом, чтобы анализ и блокировка выполнялись на уровне веб-сервера или веб-сайта.

Внутренне это реализовано как HttpModule (нативный HttpModule). HttpModule запускается для каждого запроса - местоположение не влияет на них. Для справки проверьте Исключить определенные страницы с использованием HTTPModule

Таким образом, ваш единственный другой вариант (если вам требуется поддержка именно этого модуля) - это организовать ваш сайт вместо нескольких мини-приложений.

подобно

/ -> корневое веб-приложение

/Content -> веб-приложение со статическим контентом

/ Логин -> веб-приложение с функцией входа в систему

И в каждом мини-приложении создайте web.config с соответствующими правилами.

Другие вопросы по тегам