Подтвердить что ты не робот

Возможно ли настроить местоположение в Web.config только для разрешенных локальных подключений

У меня есть страница в приложении ASP.Net(ее Mvc на самом деле, но не важно), и я хотел бы разрешать только подключение к этой странице с локальной машины. Я хотел бы сделать что-то подобное в Web.config:

<location path="resources"><system.web><authorization><allow ips="local"/></authorization></system.web></location>  

Я знаю, что это возможно с простой проверкой кода страницы (или контроллера) и его даже возможно только с настройкой IIS, но мне бы понравился Web. config config, поскольку это было бы самым изящным решением, на мой взгляд. Кто-нибудь знает, возможно ли это?

Спасибо

Гвидо

4b9b3361

Ответ 1

Вы можете попросить IIS ограничить доступ к ресурсу по IP-адресу из Web.config:

<location path="resources">
  <system.webServer>
    <security>
      <ipSecurity allowUnlisted="false">
        <clear/>
        <add ipAddress="127.0.0.1"/>
      </ipSecurity>
    </security>
  </system.webServer>
</location>

Дополнительная информация

EDIT: как указал Майк в комментарии ниже, для этого необходимо установить модуль IP и Domain Restrictions. Спасибо Майку!

Ответ 2

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

<location path="resources">
  <system.web>
    <authorization>
      <allow users="LOCALMACHINENAME\UsernameOfTrustedUser"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</location>

Ответ 3

  • Придумайте псевдоним для DNS, отличный от DNS, для этого, например, "PrivateHostName".
  • Установите это значение в файле локальных хостов, чтобы указать 127.0.0.1.
  • Установить заголовок узла (IIS) для веб-сайта таким образом, чтобы он реагировал только на запросы на адрес "PrivateHostName".
  • Для всех локальных вызовов используйте имя частного хоста.

Удаленные клиенты не смогут разрешить имя хоста.

Вы можете защитить его больше, используя выделенный IP-адрес, привязанный к виртуальному сетевому адаптеру, который фактически не будет реагировать на внешние запросы.

Ответ 4

Я нашел, что это тоже полезно, если вы хотите указать диапазон IP-адресов. Вы можете добавить следующий код для вас. Web.config

<system.webServer>
    <security>
        <ipSecurity allowUnlisted="false">
            <clear/>
            <add ipAddress="95.110.115.0" subnetMask="255.255.255.0"/>  
            <!--blocks range 95.110.115.0 to 95.110.115.255-->    
            <add ipAddress="95.110.0.0" subnetMask="255.255.0.0"/>      
            <!--blocks range 95.110.0.0 to 95.110.255.255-->    
            <add ipAddress="95.0.0.0" subnetMask="255.0.0.0"/>          
            <!--blocks range 95.0.0.0 to 95.255.255.255-->  
        </ipSecurity>
    </security>
</system.webServer>

Ответ 5

Вы можете создать свой собственный раздел конфигурации, который будет частью вашего web.config, а затем использовать этот параметр для управления поведением в global.asax Session_Start.