2009-10-01 20 views
21

我使用在web.config中宗旨,爲<頁面enableEventValidation =「假」>

<pages enableEventValidation="false"> 

下面這糾正我們一直有與阿賈克斯的問題。

我們有一個網頁,如果你瀏覽到直接使用標準的HTML超鏈接工作正常。

如果您通過GridView中的鏈接從另一頁面瀏覽並將RowCommand事件中的response.redirecting瀏覽到查詢字符串中傳遞ID的頁面。該頁面引發錯誤,控制面板中的控件出錯

「回發或回調參數無效。在配置中啓用了事件驗證功能,或者在頁面中啓用了事件驗證功能。驗證回發事件或回調事件的參數來自最初呈現它們的服務器控件如果數據是有效的和預期的,請使用ClientScriptManager.RegisterForEventValidation方法來註冊回發或回調數據以進行驗證。「

I很高興離開頁面驗證爲假,因爲它似乎沒有其他效果。

任何想法發生了什麼?

+0

我發現[此回覆](http://stackoverflow.com/a/9104931/1178314)上的一個複製問題是相當不錯的,並在這裏失蹤。 – 2015-10-15 10:03:01

回答

12

閱讀documentation

編輯:出於安全原因,最好將它設置爲true,只要你可以。

因此,我建議您將其設置爲false,只在引起問題的單個AJAX頁面上設置爲false,而在web.config中將其保留爲true。

+1

我當然讀過它,但我發現有限的解釋只會讓我相信,除非有人故意試圖成爲惡意,否則不會將其設置爲假,除非有人建議其他頁面現在的行爲不同。從這個角度來看,我認爲將它視爲虛假是安全的。在Intranet上的應用程序,我不怕惡意攻擊。 – Robert 2009-10-01 12:29:33

+0

經過多一點的研究後,我將使用建議編輯。這對於應用程序來說是有意義的,現在它又一次甜美地歌唱,所有的都被燒了起來。 – Robert 2009-10-01 14:33:31

+0

然後你可以刪除你的downvote? – SLaks 2009-10-01 15:05:30

6

here

無效的回發或回調參數錯誤基本上提高,因爲事件驗證功能。 EventValidation功能是ASP.NET 2.0中的一項新功能,它提供了額外的檢查級別,以驗證客戶端控件的回發是否來自該控件,而不是惡意使用類似跨站點腳本注入的人嘗試和操縱事物。這是我們在編程模型中不斷增加深度安全級別的總體戰略的一部分 - 這樣即使開發人員忘記添加自己的安全檢查,也可以默認安全。當你點擊射擊事件可能發生

現在,無效的回發或回調參數錯誤,對象是重新綁定或它的屬性在Page_Load事件更改或有人試圖侵入你的系統,跨站點腳本。每次.Net框架渲染一個頁面,然後它將所有控件的唯一Guid關聯起來。 綁定gridview或repeater時,每個數據綁定框架將關聯一個新的控制guid。因此,每次當您觸發事件時,請確保Page_Load事件不會更改控件,因爲如果控件更改了它,它將會有一個不同的Guid,它已經激活了回發事件。下面是這個錯誤的一些場景。

1)GridView中的Postback或Callback參數無效問題可能是:Page_Load事件中的數據綁定了Object Data Source或Manual Binding with function call。這將使您的GridView綁定任何控件的每個事件觸發數據。當你使用OnRowCommand觸發任何GridView命令時,在RowCommand觸發之前,GridView將重新綁定,並且其中的所有控件都將被分配給新的ID。因此RowCommand無法獲取激發事件的項目。解決方案無效的回發或回調參數在GridView的:你可以,如果條件

if (!IsPostBack) 

    { 

      //Your code for Bind data 

    } 

這段代碼肯定會給你的解決方案,如果這不行再檢查其他任何控件是否不給誤差範圍內,這個綁定您的數據。

+0

感謝您的輸入,我確實對此有所閱讀,但努力的結果比例並不是很好;)謝謝 – Robert 2009-10-01 14:34:19

3

有一兩件事值得補充的位置:如果要禁用事件驗證一個特定的控制,而不是整個頁面,有記載herehere(現在引用的relevant Connect suggestion)解決方法:

簡單描述相關WebControl類的子類,並且不要在子類上設置SupportsEventValidation屬性。該子類將免除事件驗證。

+0

Upvote for links to clear explanation :) – 2015-08-11 14:41:58

相關問題