Вам, вероятно, придется постоянно проверять условия сеанса - поскольку они являются индивидуальными для каждого пользователя, невозможно гарантировать, что какой-либо один запрос поступит от одного и того же пользователя без проверки сеансов / файлов cookie.
Что касается скриптов - можете ли вы сделать их декларативными (в разметке), а не в коде позади?
Возможной альтернативой является изучение «кэширования пончиков», когда вы кэшируете большую часть страницы, но оставляете те области страницы, которые изменяются для каждого пользователя, вне кэша.
Скотт Гатри имеет хороший пост на эту тему:
Совет / хитрость: внедрите "пончик кеширования" с помощью функции замены выходного кэша ASP.NET 2.0