Как мне получить значение формы, которое привело к появлению сообщения «Потенциально опасное значение Request.Form было обнаружено от клиента» в MVC?

У меня есть приложение 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
    }
}
5
задан Austin 2 February 2012 в 14:28
поделиться