2010-08-23 37 views
6

有沒有一種方法可以禁用某些文本框而不是整個頁面的請求驗證?我使用Server.HtmlEncode/Decode,因爲用戶合法使用<和>字符,但我不想在整個頁面上使用ValidateRequest="false",因爲有人可能稍後添加文本框並忘記跳過輸入,在這種情況下,我會希望驗證發生,以便發現錯誤,而不是容易受到html注入的影響。asp.net ValidateRequest = false每個文本框而不是每頁?

似乎必須有一個簡單的解決方案,但我沒有找到它的運氣。

(Web表單不MVC)

+0

嗯,這是痛苦的 - > .NET 4.5發佈我的答案時未發佈。 – Tommy 2012-11-02 19:04:09

+0

@Tommy我知道,也不是當我問這個問題的時候,但是它是更新的答案,對未來的用戶更有用。你回答仍然是upvoted。 – Davy8 2012-11-02 19:06:14

+0

哈哈 - 我知道:)沒有什麼個人的,但我確實必須來檢查一下。 PS - 看起來像我在下面的.NET 5.0評論。 – Tommy 2012-11-02 19:09:09

回答

3

否,請求驗證是整個請求,並且不能由基礎元件的元件上完成的。請求驗證默認情況下由ASP.NET啓用,旨在幫助那些不知道如何從腳本注入攻擊中清除HTML輸入的應用程序。下面貼一些鏈接進一步閱讀:

MSDN

Stackoverflow

+0

我覺得不可能每個控制都做不到。即使是一個知道自己在做什麼的人偶爾也會忘記,並且有一個備用方案會很好。無論如何+1,因爲我沒有找到任何相反的東西。如果明天沒有出現,我會接受。 – Davy8 2010-08-23 22:42:24

+0

也許.NET 5.0的東西:) – Tommy 2010-08-23 22:47:55

+0

我同意這是可笑的,這是不支持的,但我的理解是@Tommy是正確的,這在目前的ASP.NET中是不可能的。 – Stuart 2010-08-23 23:37:01

相關問題