2013-02-13 40 views
1

我在ASP.NET中有一個簡單的Web表單。自定義JSON被輸入到表單中,然後發佈到服務器。反之,當頁面加載時,與父數據對象(json所連接的)相關的任何東西都會出現在文本框中。從ASP.NET中的文本框發佈自定義JSON

儘管JSON的初始集合顯示正常,但將表單發回會導致驗證錯誤並且請求失敗。我現在的要求是能夠輸入自定義json數據。數據可能很複雜(對象樹)。在表單上保留安全性和驗證的最佳方法是什麼,但允許定製json?

+0

我們允許將自定義構造附加到父對象(基本上屬於特定客戶的自定義業務對象)。截至目前,該領域以原始形式展示了對象的這種json表示,因此是問題所在。它似乎嗆在「富」:[{「childprop」:例如「數據」。如果可能,我將能夠繼續以原始json格式發佈此自定義數據。 – 2013-02-13 17:07:41

+0

如果您發佈代碼,這將更容易幫助您。同時告訴我們它在哪裏窒息,以及錯誤消息和異常類型是什麼。 – 2013-02-13 17:30:47

+0

對不起,因爲我沒有在我面前的確切代碼。原始json是a)粘貼/寫入文本框或b)通過控件的.Text屬性在服務器端設置。在這種情況下,源代碼是服務器的數據庫,數據也存儲在原始json中。用於查看/修改數據的控件只是一個ASP.NET TextBox。對於已經存在的數據(GET調用),文本框顯示一切正常。但是,如果json數據出現在文本框中,表單文章(通過點擊執行)會導致失敗。 – 2013-02-13 17:41:30

回答

0

您可以嘗試使用JavaSCribe在客戶端編碼數據,然後將其發佈到服務器,然後在服務器上對其進行解碼。可能只有幾個字符造成這種情況。

其他選項是禁用內置驗證的asp.net,並以您自己的方式驗證數據。

在這兩種情況下,我認爲你應該有一些額外的驗證,以確保你不趕上SQL注入。

+0

我已經使用jQuery(他們有我認爲的編碼調用),並且在發佈之前看到了一個初始編碼作爲選項。考慮到可能會被惡意的人繞過,而惡意的人仍然需要驗證服務器端(目前這可能是不可避免的)。 – 2013-02-13 17:55:11

+0

我最終保持打開驗證,然後在發送之前使用jQuery進行編碼。像魅力一樣工作。 – 2013-02-20 15:51:34

+0

太棒了!感謝確認。 – JdMR 2013-02-20 17:23:15