Если у меня есть контроллер:
[HttpPost]
public ReturnType ControllerMethod(CustomModel c)
{
...
}
Третья сторона публикует данные для этого метода:
abc-xyz=testdata
Одним из способов будет использование:
Request.Params["abc-xyz"]
Однако в случае, когда запрос может содержать вредоносный код, если какой-либо параметр запроса содержит какой-либо проблемный код, IIS выдаст HttpRequestValidationException
, как только будет вызван Request.Params[""]
.
Теперь,вместо того, чтобы отключать эту проверку везде, я бы хотел отобразить опубликованные данные в моей модели.Таким образом, если «потенциально вредоносный код» содержится в любом параметре, который не является «abc-xyz», мое приложение не выдаст HttpRequestValidationException
.Однако он проверит используемые параметры и выдает HttpRequestValidationException
, если данные , к которым получен доступ , потенциально вредоносны.
Как мне это сделать, если опубликованные данные имеют дефис / дефис вимя?
Я пробовал несколько вариантов, в том числе:
public class CustomModel
{
[Required]
public string abc_xyz
}