Вопрос:Как перезаписать свойство сеанса?
Обычно, один доступ к объекту сеанса, как это:
Session["foo"] = "bar";
Я написал обертку над ним, который является общим, и который проверяет, был ли сеанс истек или нет, и броски исключение SessionExpiredException, если это так.
Для того, чтобы использовать мой доступ сеанса, я должен сеансов доступа через мой класс, как этот
WebApplications.SessionAccess.Set<string>("foo", "bar");
Теперь, очевидно, несмотря на наличие класса SessionAccess, можно получить доступ к сессии через нормальный объект сеанса. Это нежелательно, и в дополнение, я хочу позже включить его в более крупный старый проект, который был написан с использованием обычного сеанса, что означало бы, что мне пришлось бы заменять все вызовы на сеанс (число в тысячах) с помощью моего обертка.
Есть ли способ, которым я могу перезаписать System.Web.HttpSessionStateBase.Controller.Session - Свойство со своим?
Дело в том, что без пользовательского обработчика сеанса, определенного в web.config, поскольку иногда используется один для использования базы данных для сеансов (все же можно инициализировать модуль в Global.asax).
Эти исключения NULL-Reference YSODs на SessionTimeout являются гиперразрушающими.
Если возможно, решение, которое работает на классических веб-формах ASP.NET, а также на MVC.
Это переопределяет, также, действительно не понимает суть вашей проблемы. – leppie
Хм, на стороне, это похоже на идеальное применение обхода/функции перехвата для .NET. Я мог бы использовать основу мола. –
Вам это действительно нужно?Как насчет добавления вспомогательных методов в качестве методов расширения класса HttpSession? –