2011-01-28 3 views
0

Прошу прощения за мой английский.ASP.NET - кеширование пользовательских привилегий

В моем приложении ASP.NET MVC у меня есть пользователи, которые контролируются членами ASP.NET и группами пользователей, которые хранятся в базе данных с помощью моей бизнес-логики. Кроме того, я реализовал архитектуру ACL (список контроля доступа) для управления доступом пользователей к объектам в моем приложении, поэтому у меня есть несколько записей (хранимых в таблице DB) структуры User-Object-Privilegy-Value.

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

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

Я мог бы реализовать его некоторыми способами, но я хотел бы знать лучший способ.

Был ли у кого-то такой же опыт? Какое лучшее решение для кеширования пользовательских привилегий?

ответ

0

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

Однако вы все равно можете использовать встроенную систему CacheDependency в качестве базовой структуры. Вам нужно будет расширить класс и подписаться на различные измененные уведомления самостоятельно.

Смежные вопросы