单个控件的ValidateRequest =“false”

时间:2010-03-18 01:02:29

标签: asp.net validate-request

我想让用户只在一个TextBox中输入HTML。我理解可以将页面指令中的ValidateRequest更改为false,以便删除保护。

我猜这可以在页面上的任何TextBox中输入HTML。无论如何只对一个控件应用ValidateRequest="false"吗?

感谢您的帮助。

3 个答案:

答案 0 :(得分:18)

不,请求验证适用于整个请求,或者没有。

默认情况下添加了验证,以保护对输入验证毫无头绪的开发人员。如果您知道所有输入都必须被视为不安全并且知道如何正确编码您从输入中使用的数据以保护自己免受SQL注入和跨站点脚本编写等操作,则可以关闭验证。

编辑:

更新:在.NET 4.5中添加了ValidateRequestMode property,允许从页面全局验证中排除控件。

答案 1 :(得分:5)

.NET 4.5中的新功能:您可以在控件上设置ValidateRequestMode="Disabled"。请参阅MSDN

答案 2 :(得分:0)

尝试关闭ValidateRequest并使用此方法从每个单独的控件/参数中删除标记:

public static string RemoveMarkUp(this string s) {
   return Regex.Replace(s, @"<[a-zA-Z\/][^>]*>", string.Empty);
}