2013-07-30 3 views
0

У меня есть проект MVC, в котором фильтр проверяет параметр из параметров запроса.Как отключить HttpRequestValidation на HttpRequestBase?

request.Params["Username"] 

Но если запрос содержит недопустимые символы, то свойство params вызывает исключение HttpRequestValidationException.

Так что я должен поймать это исключение, а затем получить доступ к свойству params, который отлично работает.

Как отключить проверку этого запроса, входящего в вспомогательный класс как HttpRequestBase? Я не хочу глобально делать это для каждого запроса, только когда он приходит в этот класс.

ответ

1

Как комментарии @ Jon-S, UnvalidatedRequestValues ​​- это то, как вы можете обойти проверку для одного значения. В этом примере это будет:

request.Unvalidated["Username"] 
0

Не видя больше своего кода, я не могу быть уверен, но похоже, что вы можете просто поставить запрос в try-catch.

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

Спасибо за ваш ответ и добро пожаловать в StackOverflow! Вопрос указывает на то, что они уже улавливают и обрабатывают исключение - они спрашивали о способе каждого обработчика полностью отключить проверку в рамках. Знаете ли вы об этом? – Ben

+2

Я понимаю, что вы имеете в виду. Я думаю, вы можете использовать класс UnvalidatedRequestValues ​​для выполнения того, что вы ищете. Вы можете использовать его в форме или для каждого элемента. Здесь есть дополнительная информация. http://msdn.microsoft.com/en-us/library/system.web.unvalidatedrequestvalues(v=vs.110).aspx Надеюсь, что ответит на ваш вопрос! –