簡體   English   中英

如何在還利用http處理程序的復合控件中實現“ viewstate”類型的解決方案?

[英]How can I implement a “viewstate” type solution in a composite control that also utilizes an http handler?

環境:ASP.net 4.5,Webforms

我有一個復合控件,基本上是兩個元素:

  1. 用戶看到並與之交互的內容
  2. 隱藏的輸入,用於將數據發送到數據庫

因此,基本上,該控件做了很多事情,與問題無關,但是它具有幾個按鈕和操作,用戶可以單擊這些按鈕和操作,然后調用一個http處理程序,該處理程序又返回一個響應,並使用JavaScript更新其中的值。 隱藏的輸入字段。

該頁面還具有導致回發的其他控件,因此我使用viewstate保留了隱藏輸入的值。

問題是,任何精通技巧的人都可以使用JavaScript更改輸入的值,並將該數據發送到數據庫。

我知道httphandler是無狀態的,但是我正在尋找解決方案。 我不想使用隱藏的輸入,而是將值存儲在“ viewstate-type”解決方案中,因為在客戶端中不能進行干預。

因此,在我的http處理程序返回響應之前,我想將當前正在通過JavaScript隱藏的輸入中正在更新的內容存儲在服務器本身上。

我正在閱讀有關緩存的內容,但不確定最佳方法。 隱藏輸入中的值只是一個帶分隔符的值字符串,這些字符串最終將發送到存儲過程。

一種方法可能是做您現在正在做的所有事情,而不是將來自HTTP處理程序的響應作為明文發送,而不是將其作為加密文本發送回去,或者對數據進行簽名,以便您可以確定何時不被篡改。它被發送回服務器。

使用諸如緩存或會話之類的服務器端存儲機制並不理想,因為它增加了完成后清理數據的復雜性,並增加了訪問單獨的頁面中間過程的負擔,這會使數據無效。

自從我使用WebForms已經有一段時間了,但是我認為您可以通過重寫復合控件上的某些類來插入View State體系結構。

編輯:一個快速的谷歌發現了這一點 -看起來足夠合理了,但是,就像我說的,已經有一段時間了。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM