Eu costumava usar HttpModule para alterar cookies antes do Response. Hoje encontrei o Asp.net tomando a iniciativa e convertendo os caracteres chineses ꪻ que trabalhei tanto para converter em caracteres chineses, sem mencionar os controles da Web do Asp.net. Ranat=server será convertido à força em caracteres chineses para saída.
Se você escrever o conteúdo da página linha por linha usando Response, seria muito cansativo e sujeito a erros. Então a melhor maneira é realizar outra conversão após a ação de geração do Asp.net ser concluída, para que o Asp.net não tenha nada a ver com você.
Todas as ações de geração do Asp.net são concluídas no método Render, portanto realizaremos operações no método Render:
substituição protegida void Render (gravador HtmlTextWriter)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htmlw = novo HtmlTextWriter(sw);
//Retira o conteúdo gerado da página
base.Render(htmlw);
htmlw.Flush();
htmlw.Fechar();
string pageContent = sw.ToString();
//Modifica o conteúdo
pageContent = KillTheBugAndShit(pageContent);
Response.Write(pageContent);
//base.Render (escritor);
}
Usando este método, você também pode retirar o conteúdo gerado pela página e gerar uma página estática para uso.
(Acho que escrevi um post com esse conteúdo ano passado... não me lembro)