修剪异常消息

时间:2011-11-15 08:08:29

标签: asp.net

我正在尝试使用以下代码修剪异常消息:

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如何实现这个?

由于 达伦

2 个答案:

答案 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。

这使您无法解析字符串。