Что лучший способ состоит в том, чтобы обработать ошибки такой как
Потенциально опасный Запрос. Значение формы было обнаружено от клиента"
в ASP.NET?
Я хотел бы сохранить проверку на, поскольку мои формы не имеют никаких допустимых причин позволить символы HTML. Однако я не совсем уверен, как обработать эту ошибку более дружественным способом. Я пытался обработать его в a Page_Error
но, насколько я могу сказать, это происходит в более низком разделе уровня так Page_Error
функционируйте никогда не стреляет.
Поэтому мне, вероятно, придется обратиться к использованию Application_Error
в моем Global.asax
файл. Если это - единственный способ обработать ту ошибку, есть ли способ специфической обработки что одна ошибка? Я не хочу обрабатывать все ошибки приложения таким же образом.
Спасибо
У вас есть два варианта:
// Editing your global.asax.cs
public class Global : System.Web.HttpApplication
{
protected void Application_Error(object sender, EventArgs e)
{
Exception lastError = Server.GetLastError();
if (lastError is HttpRequestValidationException)
{
Response.Redirect("~/RequestValidationError.aspx");
}
}
}
или
// Editing your CUser.aspx.cs
public partial class CUser : System.Web.UI.Page
{
protected override void OnError(EventArgs e)
{
Response.Redirect("~/RequestValidationError.aspx");
Context.ClearError();
}
}
Вы не хотите добавлять ненужный багаж в Global.asax. Если вы удовлетворены тем, что это вызвано ложным вводом данных, обработайте ввод независимо от того, откуда он поступает:
http://codersbarn.com/post/2008/11/01/ASPNET-Data- Input-Validation.aspx
Сосредоточьтесь на причине ошибки: -)
Вы можете использовать Server.GetLastError ()
в Application_Error, чтобы получить исключение, которое было сгенерировано, проверьте исключение и отреагируйте на него, как хотите (перенаправление на страницу и т. д.)