Как ограничить набор символов для привязки параметров?
Я нахожусь в ситуации, когда мне нужно ограничить набор символов веб-службы для значений маршрута, параметров запроса и содержимого тела json значением latin1.
Я поиграл с переговорщиком, но он только для форматирования ответа.
Я попытался заменить поддерживаемые кодировки в средствах форматирования мультимедиа на те, которые генерируют неожиданные символы, но когда, например, JsonMediaTypeFormatter делает свое ReadFromStream
вызовите, эффективный параметр encoding уже является latin1, и строка уже искажена (я пытаюсь с некоторыми китайскими символами).
На самом деле я хочу создать какой-нибудь результат BadRequest всякий раз, когда указывается неправильная кодировка или когда появляется нелатинский символ.
Кто-нибудь может дать мне подсказку, где искать правильное место, чтобы исправить это? Я уверен, что должен быть лучший способ, чем делать все это "вручную" в DelegatingHandler.
1 ответ
В конце я просто заменил форматтер медиа на тот, который проверяет строку, используя Encoding.GetBytes(...)
перед десериализацией в объект.