如何在HttpRequestBase上禁用HttpRequestValidation?

时间:2013-07-30 09:06:50

标签: c# asp.net-mvc httprequest

我有一个MVC项目,其中过滤器检查请求参数中的参数。

request.Params["Username"]

但是如果请求包含非法字符,则params属性会抛出HttpRequestValidationException异常。

所以我必须捕获这个异常然后访问params属性,它工作正常。

如何禁用此请求的验证,该请求作为HttpRequestBase进入辅助类?我不希望全局为每个请求执行此操作,只是当它到达此类时。

2 个答案:

答案 0 :(得分:1)

正如@ Jon-S所述,UnvalidatedRequestValues是您可以绕过单个值的验证的方法。在这个例子中,它将是:

request.Unvalidated["Username"] 

答案 1 :(得分:0)

如果没有看到更多代码,我无法确定,但听起来您可以将请求放在try-catch中。

try
{
    ...
    request.Params["Username"]
    ...
}
catch (HttpRequestValidationException ex)
{
    //your error handling goes here.
}