c# - SecurityElement.IsValidText 在 "&"上返回 true ... 为什么?

标签 c# asp.net xml

我有一个最终保存在 xml 节点中的 TextBox。我正在使用 SecurityElement.Escape(string2Escape) 在保存 xml 之前转义无效字符。

问题:我尝试使用 IsValidText 来测试我是否需要运行转义方法,但它返回 ''' 和 '&' 为有效但是当你保存 xml 时系统 barfs 因为它们实际上是,无效。它似乎只在“<”或“>”上返回 false。

简单的解决方案,删除检查,但我的问题是为什么会这样?

以下是我失败的代码:

private string EscapeXML(string nodeText)
{
    if (!SecurityElement.IsValidText(nodeText))
    {
        return SecurityElement.Escape(nodeText);
    }
    return nodeText;
}

最佳答案

这是我从 Reflector 得到的。 enter image description here enter image description here

这可以解释为什么它的行为方式如此。我在 SecurityElement 中没有看到任何方法可以满足您的需求,但它很简单,您可以自己实现一个,也许可以作为一种扩展方法。

关于c# - SecurityElement.IsValidText 在 "&"上返回 true ... 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018247/

相关文章:

asp.net - 如何修复移动应用中的服务器错误 500 Web api

java - 如何添加评价我的应用程序弹出消息 android?

xml - 如果所有子孙等都是递归空的,则 XPath 查询选择最高的空祖先?

c# - 将图像转换为字节并返回

c# - 从 C# 到 Javascript 的二维数组

c# - Pinterest 嵌入按钮

java - 如何在 Java 中使用必填字段构建可重用的动态输入逻辑

c# - 通过 SqlDataAdapter 填充 DataSet 时超时

c# - 添加 ListItems 导致错误 "Cannot have multiple items selected in a DropDownList"

asp.net - 如何从 C# 代码隐藏设置 iframe 的最小高度?