Немного предыстории:
Нам нужно разработать собственный модуль Orchard для клиента, который будет перехватывать внешний реферер URL (если есть) и сохранять его в переменной сеанса для последующего использования, например. отправки запроса на один из своих продуктов.
Мое наивное решение состояло в том, чтобы предложить записать реферер URL в Session_Start, потому что это надежный способ узнать, как пользователь попал на наш сайт. Проблема в том, что клиент не хочет, чтобы мы касались файла global.asax.cs. Это должно быть сделано через специальный модуль. Это не подлежит обсуждению.
Итак, мой вопрос заключается в следующем: как я могу надежно получить и сохранить информацию UrlReferrer, когда новый сеанс начинается с использованием модуля Orchard?
Или, в качестве альтернативы, есть ли другой способ подключиться к жизненному циклу страницы и, возможно, проверить, была ли предыдущая страница внешним реферером?
Моя самая важная проблема здесь заключается в том, что мне нужно знать, щелкнул ли кто-то по рекламной ссылке, и мне нужно выяснить это в модуле, а не в global.asax.cs. Я не зациклен на каком-либо конкретном методе отслеживания, если это возможно в рамках Orchard с учетом наложенных на меня ограничений.
К вашему сведению: версия Orchard 1.8+.