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

Разрешить анонимную проверку подлинности для одной папки в web.config?

Итак, вот сценарий, у меня есть приложение Asp.Net, которое использует собственный поставщик аутентификации и членства, но нам нужно разрешить полностью анонимный доступ (т.е.) к определенной папке в приложении.

В диспетчере IIS вы можете установить режим проверки подлинности в папке, но настройки сохраняются в C:\Windows\System32\inetsrv\config\applicationHost.config файле как описано здесь

Чтобы упростить установку, было бы здорово, если бы я мог установить это в моем web.config, но после нескольких попыток я думаю, что это может быть невозможно.

Кто-нибудь знает иначе?

Большое спасибо

4b9b3361

Ответ 1

Используйте тег конфигурации <location> и <allow users="?"/>, чтобы разрешить анонимный или <allow users="*"/> для всех:

<configuration>
   <location path="Path/To/Public/Folder">
      <system.web>
         <authorization>
            <allow users="?"/>
         </authorization>
      </system.web>
   </location>
</configuration>

Ответ 2

Первый подход - изменить ваш web.config с помощью тега конфигурации <location> и <allow users="?"/>, чтобы анонимный или <allow users="*"/> для всех:

<configuration>
   <location path="Path/To/Public/Folder">
      <system.web>
         <authorization>
            <allow users="?"/>
         </authorization>
      </system.web>
   </location>
</configuration>

Если этот подход не работает, вы можете использовать следующий подход, который требует внесения небольшой модификации в приложение IHHost.config.

Сначала измените раздел anonymousAuthentication overrideModeDefault с "Запретить" на "Разрешить" в C:\Windows\System32\inetsrv\config\applicationHost.config:

<section name="anonymousAuthentication" overrideModeDefault="Allow" />

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

Во-вторых, после установки overrideModeDefault="Allow", вы можете поместить следующее в свой web.config:

<location path="Path/To/Public/Folder">
  <system.webServer>
    <security>
      <authentication>
        <anonymousAuthentication enabled="true" />
      </authentication>
    </security>
  </system.webServer>
</location>

Ответ 3

<location path="ForAll/Demo.aspx">
 <system.web>
  <authorization>
    <allow users="*" />
  </authorization>
 </system.web>
</location>

В дополнение: Если вы хотите что-то написать в этой папке через веб-сайт, вы должны предоставить разрешение IIS_User для папки

Ответ 4

Чтобы сделать это, я создаю свой каталог следующим образом:

Project  общественного  Ограничение

Итак, я редактировал свой webconfig для моей общей папки:

<location path="Project/Public">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

И для моей ограниченной папки:

 <location path="Project/Restricted">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorizatio>
    </system.web>
  </location>

Надеюсь, я помог.

Ответ 5

Я добавил web.config в конкретную папку "Пользователи" (VS 2015, С#) и добавленный следующий код

<?xml version="1.0"?>
 <configuration>
  <system.web>
    <authorization>     
    <deny users="?"/>
  </authorization>
</system.web>
</configuration>

Первоначально я использовал тег location, но это не сработало.