Как я могу выдать исключение, если сеанс записывается в режиме ReadOnly? - PullRequest
0 голосов
/ 03 сентября 2010

Я хотел бы найти способ вызвать исключение, если сеанс записывается в режиме только для чтения. Когда EnableSessionState установлен в «ReadOnly», значения все еще могут быть помещены в Session, но при следующем запросе их там не будет. Это кажется несколько опасным.

Один из вариантов - создать вспомогательный класс, который мы всегда используем для доступа к сеансу. Однако это все еще оставляет разработчику возможность непреднамеренно использовать сеанс напрямую и попасть в ловушку «только для чтения». Есть ли способ создать CustomSessionStateDataStore, который находится поверх существующего кода сеанса? Я не мог видеть очевидный путь, и вы не можете наследовать от System.Web.SessionState.SessionStateStoreData напрямую.

Спасибо за любую помощь

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

Состояние сеанса построено на основе модели провайдера, поэтому вы можете создать собственного провайдера сеанса, я полагаю.

Вот статья, в которой обсуждается модель провайдера из высокоуровневого представления: Модель провайдера ASP.NET 2.0: введение в модель провайдера .

А вот статья, в которой говорится о поставщиках состояния сеанса и показано, как создать собственного настраиваемого поставщика: Поставщики состояния сеанса .

0 голосов
/ 09 сентября 2010

В итоге я реализовал свой собственный модуль SessionStateModule для достижения того, что мне нужно.См. Эту ветку для получения дополнительной информации: Я только что обнаружил, почему все сайты ASP.Net работают медленно, и я пытаюсь понять, что с этим делать

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