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

40

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

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

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

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

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

его самый распространенный вопрос и ответ очень прост, как дано Imran Rizvi
Почему вы хотите разрешить анонимный доступ к этой папке? Imran Rizvi
Большая часть приложения должна быть доступна только для людей, которые приобрели доступ, но мы хотим предоставить некоторый бесплатный контент внешнему миру (чтобы соблазнить людей купить доступ) Chris Fewtrell

Ваш Ответ

4   ответа
0

проект  общественного  ограничивать

Поэтому я отредактировал свой webconfig для моей общей папки:

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

И для моей папки Restricted:

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

Смотрите здесь для спецификации * и?:

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authorization/add

Я надеюсь, что помог.

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

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

49

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

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

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

Сначала измените overrideModeDefault раздела anonymousAuthentication на "Deny". «Разрешить» в 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>
К сожалению, это не так, поскольку overrideMode - это функция безопасности IIS. Если переопределение запрещено на системном уровне в applicationHost.config, то вы ничего не можете сделать в web.config, чтобы включить его. Поэтому вам нужно обсудить это с вашим хостинг-провайдером или системным администратором, если у вас нет такого уровня доступа в вашей целевой системе.
& quot; было бы замечательно, если бы я мог установить это в своем web.config & quot;
Обновленный ответ на основе обратной связи, пожалуйста, посмотрите еще раз.
Оригинальный пост специально ссылался на файл applicationHost.config. Плохое голосование за ответ кажется резким для оригинального сообщения, не соответствующего конкретным ограничениям вашего сценария.
-1 а как же не хостинг локально? когда у вас нет доступа к apphost.conf?
42

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

<configuration>
   <location path="Path/To/Public/Folder">
      <system.web>
         <authorization>
            <allow users="?"/>
         </authorization>
      </system.web>
   </location>
</configuration>
Кажется, это тот случай, когда Крис Фьютрелл. Конечно, при проверке подлинности Windows не имеет значения, для чего вы их установили.
Это то, что я впервые попробовал, но это не работает. Я подозреваю, что эти параметры авторизации местоположения действуют только при работе с проверкой подлинности с помощью форм. Chris Fewtrell

Похожие вопросы