.net core UseResponseCompression конфликтует с атрибутом ResponseCache при установке значений заголовков Vary.

Я использую промежуточное программное обеспечение сжатия отклика в своем приложении.Net Core API, вызывая app.UseResponseCompression(). Но в одном из моих действий контроллера API я также использую атрибут ResponseCache и устанавливаю его в VaryByHeader = Authorization, но ответ, который я получаю, получает только заголовок Vary: "Accept-Encoding", который, кажется, помещается туда Промежуточное программное обеспечение Compress Compression. Если я удаляю промежуточное ПО, появляется Vary: Authorization, поэтому я предполагаю, что промежуточное ПО конфликтует с атрибутом ResponseCache.

Как я смогу получить Авторизацию для заголовка переменной, в то же время используя еще и возможность использования промежуточного программного обеспечения для сжатия ответов?

2 ответа

Решение

По-видимому, я должен поставить и "Accept-Encoding" и "Authorization" для значения VaryByHeader, чтобы получить их оба, если использовать атрибут ResponseCache с промежуточным ПО UseResponseCompression. Я не уверен, почему это так.

Я помещаю их в виде значений, разделенных запятыми, т.е. "Accept-Encoding, Authorization" для свойства VaryByHeader атрибута ResponseCache.

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

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