2

我有一个下拉列表,我需要根据 CAML 查询过滤其内容。此查询必须由用户设置。

允许用户输入 CAML 查询或其他常见标记的最佳方法是什么?

例子:

<OrderBy><FieldRef Name='SomeColumn' Ascending='True' /></OrderBy>

如果我使用文本框,则需要禁用验证,否则我会丢失查询的内容,因为 .NET 会剥离它的类似 HTML 的标签以针对 XSS 进行文本处理。

我不想经历构建查询配置器的过程,但我也明白禁用验证是不好的做法。这里有中间立场,或者只是一个更好的方法?

禁用验证和使用 System.Web.HttpUtility.HtmlEncode 是一个有效的解决方案吗?

提前致谢。

4

1 回答 1

1

使用escapeJavaScript 方法在上传之前更改文本,然后Server.UrlDecode在 Web 服务器上使用将其恢复为原始状态。

至于何时这样做,我会处理该onsubmit事件并告诉它将文本框内容复制到将被上传的隐藏字段中(但不应提交文本框)。

于 2012-11-30T00:24:56.567 回答