IIS7 не распространяет авторизацию к подкаталогам

BackupExec, со свободным RALUS *ОТКЛОНЯЮТ агент. Экспорт легко, не требует Samba и согласуется с серверами Windows, которые также сохранены агентами.

3
задан 10 June 2009 в 23:00
2 ответа

Эта проблема была в конечном счете вызвана, потому что каталог, где файлы были размещены, не был доступен для учетной записи IUSR (это было то, несмотря на то, что это было доступно для "СЕТЕВОЙ СЛУЖБЫ" и идентификационных данных пула приложений). Когда я тестировал на новой установке IIS7, я копировал дерево каталогов в \inetpub\wwwroot, где IUSR уже имел доступ.

Все еще не ясно, почему эта проблема показала себя как перенаправление к странице входа в систему (как будто это не распространяло настройки авторизации правильно), но я действительно определял некоторые проблемы с конфигурацией аутентификации форм.

Эта часть очень важна, потому что все, что я нашел, не делает правильно (или соответственно) объясняют это.

Фактически везде я искал, я нашел следующие настройки для web.config.

<configuration>
  <system.web>
    <authentication mode="Forms">
      <forms loginUrl="~/login.aspx" />
    </authentication>
    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
  </system.web>
</configuration>

Путем это обычно объясняется, то, что, неаутентифицируемые пользователи перенаправляются к login.aspx и аутентифицируемым пользователям, является предоставленным доступом.

На самом деле этот раздел конфигурации только относится к страницам ASP.NET (aspx). Любыми другими типами содержания (HTML, asp, jpg, и т.д.) не управляет эта конфигурация.

Для защиты этих типов содержания, необходимо было установить "авторизацию IIS 7 URL", и это требует раздела web.config под как показано ниже.

<system.webServer>
  <security>
    <authorization>
      <clear />
      <add accessType="Deny" users="?" />
      <add accessType="Allow" users="*" />
    </authorization>
  </security>
</system.webServer>

Я видел одно место, которое объяснило различие между и как IIS6 по сравнению с IIS7, но это не абсолютно точно. Существуют различные механизмы авторизации для различных типов содержания, и Вам нужны оба, если Вы хотите ограничить доступ к не aspx страницы.

3
ответ дан 3 December 2019 в 06:25

Одна идея, прибывающая по моему мнению, состоит в том, что существует другой web.config файл в Вашей подпапке "стилей", которая содержит другого <deny users="?"> правило.

Существует обсуждение следующего потока форумов, который мог быть интересен Вам: проблема с web.config наследованием и разделом <authorization>.

Эта статья MSDN содержит интересное предложение. Я не уверен, как интерпретировать его:

Правила, содержавшиеся в конфигурационных файлах прикладного уровня, имеют приоритет по наследованным правилам. Система определяет, какое правило имеет приоритет путем построения объединенного списка всех правил для URL с новыми правилами (ближайшие в иерархии) во главе списка.

1
ответ дан 3 December 2019 в 06:25
  • 1
    Я соглашаюсь, это - первая вещь I' d проверяют также. То интересное предложение означает, что Ваши .config файлы низшего уровня превзойдут настройки, определенные в .config файлах выше в структуре сайта. Много приложений могут быть определены под одним сайтом, и это позволяет Вам установить базовую конфигурацию для сайта, все еще позволяя отдельные приложения на сайте иметь их собственные настройки. –  squillman 11 June 2009 в 00:00
  • 2
    Там isn' t другой web.config файл в каталоге Styles. I' m уверенный это настроено правильно, потому что я могу скопировать каталог, отбросить его на другой машине и указать на него на этот каталог, и это работает. I' m почти бесспорный это - что-то испорченное на этой машине. –  RonnBlack 11 June 2009 в 00:35

Теги

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