Существует 3-й, и лучше, вариант, который заключается в использовании POST, а не GET (что вы сделали бы, когда вы помещаете свои параметры в строку запроса).
ASPX использует POST автоматически, если вы используете такую форму:
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
...
</form>
Это лучше, потому что данные передаются на страницу при обратной передаче, используя метод HTTP POST, который не показывает параметры в строке запроса.
Если, однако, вы хотите, чтобы пользователь мог добавлять в закладки / добавить в избранное поиск без программирования, тогда лучше всего использовать подход GET (querystring).
Использование состояния сеанса для хранения параметров поиска сложно проверить, отладить и, как правило, является плохой практикой.