пользователя в отдельности. Это упрощает управление, поскольку администратору
приходится работать лишь с небольшим набором ролей, а не со всеми
пользователями системы.
Применяйте авторизацию на базе ресурсов для аудита системы. При авторизации
на базе ресурсов права доступа определяются в самом ресурсе. Например, список
управления доступом (ACL) ресурса Windows использует удостоверение исходного
вызывающего для определения его прав доступа к ресурсу. При использовании
авторизации на базе ресурсов в WCF необходимо выполнить олицетворение
исходного вызывающего через клиента или слой представления, через слой
сервисов WCF и для кода бизнес-логики, выполняющего доступ к ресурсу.
Используйте авторизацию на основании утверждений, если требуется
поддерживать интегрированную авторизацию на базе сочетания данных, таких как
удостоверение, роль, разрешения, права и т.д. Авторизация на основании
утверждений обеспечивает дополнительные уровни абстракции, что упрощает
отделение правил авторизации от механизма авторизации и аутентификации.
Например, пользователь может быть аутентифицирован по сертификату или имени
пользователя/паролю, после чего набор этих утверждений передается в сервис для
определения прав доступа к ресурсу.
Больше сведений о разработке стратегии авторизации и методиках ее реализации можно
найти в разделе «Дополнительные источники» в конце данной главы.
Кэширование
Кэширование может улучшить производительность и время отклика приложения. Однако
неправильно спроектированная стратегия кэширования может негативно сказаться на этих
показателях. Кэширование должно применяться для оптимизации поиска используемых
данных, сокращения количества обращений к сети и предотвращения ненужной или
повторной обработки. При реализации кэширования необходимо принять решение о том,
когда загружать кэшированные данные, а также как и когда удалять устаревшие
кэшированные данные. Предварительная асинхронная загрузка в кэш часто используемых
данных или применение пакетной обработки помогут избежать задержек на стороне клиента.
При проектировании стратегии кэширования руководствуйтесь следующими
рекомендациями:
Выберите подходящее размещение для кэша. Если приложение развертывается на
Веб-ферме, избегайте применения локальных кэшей, для которых необходима
синхронизация. В этом случае рекомендуется использовать систему управления
транзакционными ресурсами, такую как Microsoft® SQL Server®, или продукт,
поддерживающий распределенное кэширование, такой как технология Memcached
производства компании Danga Interactive или механизм кэширования Velocity от
компании Microsoft (больше информации по этому вопросу можно найти в разделе
Дополнительные источники в конце данной главы).
При работе с кэшем в памяти применяйте кэширование данных в готовом к
использованию виде. Например, кэшируйте не просто необработанные данные