Max*_*eue 2 c# security escaping
这应该很容易。我有一个我转义的字符串,如下所示:
string originalString = "M&M";
string escapedString = System.Security.SecurityElement.Escape(originalString);//M&M
Run Code Online (Sandbox Code Playgroud)
目前很好
string unEscapedString = System.Security.SecurityElement.FromString(escapedString).Text;
Run Code Online (Sandbox Code Playgroud)
期待回到 M&M 但得到“对象未设置”
假设字符串应该是 xml 格式,所以在这种情况下我应该做什么的任何帮助都会有帮助。
您可以使用System.Net.WebUtility
类的静态HtmlDecode
方法来做到这一点:
string original = "M&M";
string escaped = System.Security.SecurityElement.Escape(original);
string unescaped = System.Net.WebUtility.HtmlDecode(escaped);
Run Code Online (Sandbox Code Playgroud)
代码无法正常工作的原因是该FromString
方法需要有效的 xml。请参阅此处的文档:
参数
xml
String
用于创建安全元素的 XML 编码字符串。
如果在字符串周围添加 xml 标记,则可以使代码示例正常工作:
string unescaped = SecurityElement.FromString($"<x>{escaped}</x>").Text;
Run Code Online (Sandbox Code Playgroud)