Я бы определенно посоветовал не основывать вашу логику на информации запроса (не более, чем на введенных пользователем значениях). Дело в том, что будет отличаться в разных браузерах, и его действительно можно взломать.
Если вам все еще нужно передавать информацию от клиента к серверу, обязательно проверьте ее. Если вам нужно, чтобы они оставались синхронизированными и имели достоверную информацию, не полагайтесь на то, что дают вам браузеры, а установите его самостоятельно, а затем извлекайте его из места в заданном вами запросе (например, скрытый ввод, элемент управления переменная в viewstate или что-то еще, что позволяет использовать технологию, которую вы используете).
Большинство сайтов справляются с ситуацией, которую вы пытаетесь решить, передавая целевой URL-адрес в самом URL-адресе, в параметре запроса. Например:
http://www.example.com/Login.aspx?returnUrl=/TEST/content.htm
РЕДАКТИРОВАТЬ: Я понимаю, что все, что вы отправляете клиенту, в любом случае очень легко взломать, но если вы установите его самостоятельно, вам будет легче проверить, что оно не было подделано. Примером являются методы проверки ViewState.