我正在尝试使用以下代码修剪异常消息:
Response.Redirect("IllegalCharactersError.aspx?error=");
string message = ex.Message;
string cleanMessage = message.Substring(message.IndexOf("=") + 1);
Session.Add("IllegalCharactersError", cleanMessage.Replace("\\", ""));
以下是字符串的示例: 从客户端
检测到潜在危险的Request.Form
值
(ctl00$Main$EmployerRegistrationCtrl$CompanyDetails$CompanyTradingAs="'<'My Company Trading").
我只想显示'<'My Company Trading
,但我的标签显示\"'<'My Company Trading\").
带有反斜杠,所以它不显示,我似乎无法删除,任何idead如何实现这个?
由于 达伦
答案 0 :(得分:2)
您应该使用HttpUtility.HtmlEncode:
lbl.Text = HttpUtility.HtmlEncode(value);
稍后使用HttpUtility.HtmlDecode阅读标签的Text
:
string value = HttpUtility.HtmlDecode(lbl.Text);
如果您想通过网址传输错误消息,则需要HttpUtility.UrlEncode以及之后的HttpUtility.UrlDecode。
但我不知道你从哪里得到反斜杠。原始的错误消息没有,你在某个地方屏蔽它吗?
为了完整起见,您可以在此处找到有关如何防止“危险Request.Form
值”的信息 - 错误:A potentially dangerous Request.Form value was detected from the client
答案 1 :(得分:1)
您是否自己制作了IllegalCharactersException
(或者在您的示例中调用了它)?如果你这样做了,你应该为它添加一些有用的属性:
ex.OffendingValue
ex.Field
抛出异常时,这些属性应该是filles。
这使您无法解析字符串。