Частный объект кэша в ASP.NET - PullRequest
1 голос
/ 11 февраля 2011

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

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

Я ожидал, что смогу создать свой собственный новый Cache (), но проверяю значениеmycache ["Value"]! = null, вызывает исключение нулевой ссылки изнутри объекта.Я предполагаю, потому что объект Server.Cache создается с некоторыми другими вещами, которые правильно инициализируют объект Cache.

Кто-нибудь знает, как я могу сделать элемент закрытым или инициализировать свой собственный объект Cache?

РЕДАКТИРОВАТЬ: вставка элемента также вызывает исключение нулевой ссылки.mycache.Insert ("item", true)

Ответы [ 2 ]

2 голосов
/ 11 февраля 2011

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

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

2 голосов
/ 11 февраля 2011

Технически нет способа скрыть кеш от программного аспекта. Чтобы добиться чего-то подобного, нужно создать оболочку и заставить всех использовать эту оболочку для извлечения данных. Оболочка может располагаться поверх кэша, и пока все проходят через нее, она может работать как положено.

Но нет ничего доступного, чтобы приватизировать это, если вы не используете целую другую конструкцию, которая создается и управляется приложением (например, кеш EL).

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...