2015-06-23 1 views
1

Окружающая среда: ASP.net 4.5, WebFormsКак я могу реализовать решение типа «viewstate» в составном элементе управления, который также использует обработчик http?

У меня есть составной элемент управления, который в основном два элемента:

  1. То, что пользователь видит и взаимодействует с
  2. Скрытый вход, который используется для передачи данных в в базе данных

В основном, элемент управления делает много вещей, не относящихся к вопросу, но он имеет несколько кнопок и действий, которые пользователь может щелкнуть, а затем вызывает обработчик http, который, в свою очередь, возвращает re sponse, и использует JavaScript для обновления значения в поле ввода скрытое поле ввода.

На странице также есть другие элементы управления, которые вызывают пост-обратную связь, поэтому я сохраняю значение скрытого ввода с помощью viewstate.

Проблема в том, что любой здравомыслящий человек может использовать JavaScript для изменения значения ввода и отправки этих данных в базу данных.

Я знаю, что httphandler не имеет гражданства, но я ищу решение для этого. Вместо использования скрытого ввода я хотел бы сохранить значение в решении типа «viewstate», так как клиент не может вмешиваться.

Так что, прежде чем мой обработчик http вернет ответ, я хотел бы сохранить то, что в настоящее время обновляется в моем скрытом вводе через JavaScript, на самом сервере.

Я читаю немного о кешировании, но не уверен в лучшем способе. Значение в скрытом вводе - это просто строка с разделителями, которая в конечном итоге отправляется в хранимую процедуру.

ответ

0

Один из подходов может заключаться в том, чтобы делать все, что вы делаете сейчас, но вместо того, чтобы отправлять ответ HTTP-обработчика как чистый текст, отправлять его в виде зашифрованного текста или подписывать данные, чтобы вы могли убедиться, что он не был изменен, когда он был отправлен обратно на сервер.

Использование механизма хранения на стороне сервера, такого как кеш или сеанс, не является идеальным, поскольку он добавляет сложность очистки данных по завершении и учитывает посещение отдельной страницы в середине процесса, что сделает данные инвалид.

0

Это было какое-то (длинное) время с тех пор, как я использовал WebForms, но я думаю, что вы можете подключиться к архитектуре View State, переопределив некоторые классы в вашем составном элементе управления.

Редактировать: Быстро найденный google this - он выглядит достаточно разумным, но, как я уже сказал, прошло некоторое время. Надеюсь, поможет.

+0

Отсутствие проблем с использованием ViewState из самого элемента управления. – user1447679

+0

Достаточно честный - я неправильно понял вашу проблему. Извиняюсь. – amcdermott

+0

Нет проблем. Я ценю, что вы нашли время, чтобы помочь. – user1447679

 Смежные вопросы

  • Нет связанных вопросов^_^