У меня есть приложение MVC3 с настраиваемым атрибутом HandleErrorAttribute, так что я могу отправить сообщение об ошибке по электронной почте. Я часто получаю сообщение «От клиента обнаружено потенциально опасное значение Request.Form», но оно показывает только первые несколько символов значения формы, вызвавшего исключение. Я хотел бы увидеть все введенное значение формы, чтобы попытаться лучше понять, был ли ввод злонамерен или случайен пользователем. Однако, когда я пытаюсь извлечь значения формы из атрибута HandleErrorAttribute, возникает та же ошибка! Есть идеи, как получить значения формы из Request.Form, не вызывая проверки в моем обработчике исключений?
public class HandleErrorLogAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext context)
{
base.OnException(context);
//Record Error
string errorDetails = HttpUtility.HtmlEncode(context.Exception.ToString());
// Throws "otentially dangerous..." error here
foreach (var key in context.RequestContext.HttpContext.Request.Form.AllKeys)
{
errorDetails += key + "=" + HttpUtility.HtmlEncode(context.RequestContext.HttpContext.Request.Form[key]);
}
// Send Email with errorDetails
}
}