Сохранение файла cookie аутентификации является простым и независимым от состояния сеанса:
<system.web>
<authentication mode="Forms">
<forms timeout="43200"/>
</authentication>
</system.web>
Время ожидания устанавливается в минутах, поэтому:
30 (дней) * 24 (часов) * 60 (минут) = 43200 минут
Материал сессии немного сложнее, но выполнимо.
Вам действительно нужно посмотреть, что вы на самом деле храните в сессии, и действительно ли вам нужно все это время. Поскольку переменные сеанса хранятся на сервере, они будут сохраняться при перезапусках приложения (по умолчанию это 20 минут после последнего действия на сайте или 29 часов с момента последнего перезапуска приложения и другие исключительные случаи) посмотреть на использование чего-то другого, кроме сессий InProc - либо с использованием сервера сессий, либо SqlSessions.
Однако, возможно, вы можете что-то делать и с профилями, поэтому храните наименее используемые переменные в хранилище профилей и извлекайте их только тогда, когда это действительно необходимо.
В противном случае вы захотите посмотреть, как можно восстановить состояние сеанса, когда пользователь вернется, - так что сохраните какой-нибудь известный токен в постоянном файле cookie, который позволит вам выбрать то место, где вы остановились, - однако самый простой способ сделать это - взять их имя пользователя из системы аутентификации и сохранить данные в базе данных ...