Как запретить ASP.Net отправлять кодировку по умолчанию?

Я работаю над созданием нескольких веб-страниц для тестирования различных сценариев уязвимости, но ASP.Net или IIS слишком хорошо справляется со своей задачей, защищая меня от самого себя.

Одна из вещей, которые я пытаюсь сделать, это возвращать ответы с различными заголовками Content-Type, с объявлениями кодировки и без них. Проблема в том, что если я не укажу кодировку, то ASP.Net по умолчанию добавит utf-8.

В моем коде программной части ASPX.cs, если у меня есть Response.AddHeader("Content-Type", "text/html") или Page.ContentType = "test/html", я ожидаю увидеть следующий заголовок, возвращаемый страницей:

Content-Type: text/html

Вместо этого я получаю:

Content-Type: text/html; charset=utf-8

Если я использую Response.AddHeader("Content-Type", "text/html; charset=iso-8859-1"), я получаю ожидаемый заголовок:

Content-Type: text/html; charset=iso-8859-1

Есть ли способ остановить ASP.Net (IIS?) от добавления charset=utf-8 к заголовку, когда я этого не хочу?

Я использую ASP.Net 4.0 и IIS 7.5.


person Andrew Cooper    schedule 23.10.2013    source источник
comment
Почему вам нужно удалить этот charset=utf-8 по умолчанию?   -  person Murali Murugesan    schedule 23.10.2013
comment
@murali Потому что у меня есть другой проект, который ищет подобные вещи, и я хочу проверить его функциональность.   -  person Andrew Cooper    schedule 23.10.2013


Ответы (1)


Попробуй это:

Response.Charset = "";
person IT63    schedule 24.10.2013
comment
Дох! Не могу поверить, что это было так просто. Я пробовал всевозможные вещи с настройкой заголовков и объекта Page и даже не осознавал, что это свойство существует. Спасибо за вашу помощь. - person Andrew Cooper; 24.10.2013
comment
Полезный ответ ! вместо пустой строки или есть какое-то постоянное значение, которое вы могли бы присвоить? (т.е. Charsets.UTF8, я, конечно, не ищу String.Empty) - person Michiel; 26.03.2014