В моем приложении интрасети ASP.NET MVC есть хранилище данных, которое использует имя пользователя текущего пользователя Windows для извлечения данных, принадлежащих домашнему сайту пользователя по умолчанию. Логин содержит идентификатор сайта. Класс репозитория является единственным местом, которое обращается к HttpContext.Current.User.Identity и извлекает идентификатор сайта из имени входа. Следовательно, приложение обслуживает данные только одного пользователя. Теперь наши требования изменились: пользователи могут просматривать данные других сайтов, щелкая ссылку на другое имя сайта в меню сайта. Меню сайта находится на главной странице. Когда пользователь нажимает на любую ссылку на сайт, необходимо обновить область сайта, после чего он повторно выполняет действие, которое было выполнено до щелчка по ссылке на сайт с новой областью сайта. Например, если пользователь выполняет список запросов, по умолчанию он будет отображать только запросы с сайта пользователя по умолчанию. Когда пользователь нажимает на другой сайт, он отображает запросы сайта. В приложении много действий контроллера, я предпочитаю не изменять каждое действие каждого контроллера и существующие маршруты. Я думаю о создании нового контроллера с действием для установки области сайта, но я не знаю, как заставить его узнать, какое действие было выполнено до того, как будет выполнено действие нового контроллера. Должен ли я использовать переменную Session для сохранения изменения области? Является ли фильтр действий лучшим способом перефакторинга моего приложения? Любое предложение с примером кода приветствуется. Спасибо.