Чтобы сделать жизнь еще интереснее, ASP.NET допускает неограниченную иерархию подкаталогов и правил авторизации. Например, вполне возможно иметь виртуальный каталог с правилами авторизации, подкаталог, определяющий дополнительные права, и еще один подкаталог внутри этого подкаталога, в котором определен еще ряд правил. Чтобы легче понять процесс авторизации в этом случае — представьте все правила в виде единого списка, начинающегося с каталога, в котором находится запрошенная страница. Если все эти правила обработаны и соответствие не найдено, ASP.NET начинает читать правила авторизации из родительского каталога, затем из каталога, родительского по отношению к нему и так далее — до тех пор, пока не найдет соответствие. Если никаких подходящих правил не найдено, ASP. NET в конечном итоге применяет правило <allow users="*"> из файла machine.config.

Контроль доступа к определенным файлам

Обычно установка прав доступа к файлам на уровне каталога — самый ясный и легкий подход. Однако существует возможность ограничить доступ к определенным файлам, добавляя дескрипторы <location> в файл web.config.

Дескрипторы location размещаются вне главного дескриптора <system.web> и вложены непосредственно в базовый дескриптор <configuration>, как показано ниже:

<configuration>
  <system.web>
    <!-- Прочие установки пропущены. -->
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
  
  <location path="SecuredPage.aspx">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>
  
  <location path="AnotherSecuredPage.aspx">
    <system.web>
      <authorization>
       <deny users="?" />
      </authorization>
    </system.web>
  </location>
</configuration>

В этом примере открыт доступ ко всем файлам приложения за исключением SecuredPage.aspx и AnotherSecuredPage.aspx, которые имеют правило авторизации, запрещающее анонимный доступ к ним.

Контроль доступа для определенных ролей

Для облегчения понимания и поддержки системы безопасности Web-сайта, пользователей часто объединяют в категории, называемые ролями. Вы сможете оценить значение ролей, управляя приложением масштаба предприятия, которое поддерживает сотни-тысячи пользователей. Было бы утомительно определять права доступа для каждого индивидуального пользователя, к тому же в последствии их трудно сопровождать и почти невозможно сделать без ошибок.

предыдущая    следующая страница    вначало главы    оглавление

930

Hosted by uCoz