Как ограничить набор символов для привязки параметров?

Я нахожусь в ситуации, когда мне нужно ограничить набор символов веб-службы для значений маршрута, параметров запроса и содержимого тела json значением latin1.

Я поиграл с переговорщиком, но он только для форматирования ответа.

Я попытался заменить поддерживаемые кодировки в средствах форматирования мультимедиа на те, которые генерируют неожиданные символы, но когда, например, JsonMediaTypeFormatter делает свое ReadFromStream вызовите, эффективный параметр encoding уже является latin1, и строка уже искажена (я пытаюсь с некоторыми китайскими символами).

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

Кто-нибудь может дать мне подсказку, где искать правильное место, чтобы исправить это? Я уверен, что должен быть лучший способ, чем делать все это "вручную" в DelegatingHandler.

1 ответ

Решение

В конце я просто заменил форматтер медиа на тот, который проверяет строку, используя Encoding.GetBytes(...) перед десериализацией в объект.

Другие вопросы по тегам