2013-10-23 15 views
5

Ich arbeite an dem Erstellen einiger Webseiten zum Testen verschiedener Anfälligkeitsszenarien, aber ASP.Net oder IIS ist zu gut darin, mich vor mir selbst zu schützen.Wie verhindere ich, dass ASP.Net einen Standardzeichensatz sendet?

Eines der Dinge, die ich versuche, ist Antworten Antworten mit verschiedenen Content-Type-Header, mit und ohne Zeichensatz Deklarationen. Das Problem, dass ich, wenn ich den Zeichensatz weglassen, dann ASP.Net standardmäßig in utf-8 hinzufügen.

In meinem aspx.cs Code-behind, wenn ich Response.AddHeader("Content-Type", "text/html") oder Page.ContentType = "test/html" haben, würde ich erwarten, dass die folgenden Header der Seite zurück, um zu sehen:

Content-Type: text/html 

Stattdessen erhalte ich:

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

Wenn ich Response.AddHeader("Content-Type", "text/html; charset=iso-8859-1") verwenden dann bekomme ich die erwartete Kopf:

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

Gibt es eine Möglichkeit, ASP.Net (IIS?) Davon abzuhalten, charset=utf-8 an den Header anzuhängen, wenn ich es nicht will?

Ich benutze ASP.Net 4.0 und IIS 7.5.

+0

Warum müssen Sie diesen Standard entfernen 'charset = utf-8'? –

+0

@murali Weil ich ein anderes Projekt habe, das nach dieser Art von Ding sucht, und ich möchte seine Funktionalität testen. –

Antwort

8

Versuchen Sie folgendes:

Response.Charset = ""; 
+0

Doh! Ich kann nicht glauben, dass es so einfach war. Ich habe alle möglichen Dinge mit dem Setzen von Headern und dem Page-Objekt versucht und wusste nicht einmal, dass diese Eigenschaft da war. Danke für Ihre Hilfe. –

+0

Nützliche Antwort !, anstelle einer leeren Zeichenfolge oder gibt es einen konstanten Wert, den Sie zuordnen könnten? (d. h. Charsets.UTF8, Ich suche nicht nach String.Empty natürlich) – Michiel

Verwandte Themen