2010-04-16 1 views

Antwort

8

Es gibt HTML mit den codierten Entitäten aus. Es ist kurz Hand für

<%= HttpUtility.HtmlEncode("Some string") %> 

Darüber hinaus kann es erweitert werden, um zusätzliche coole Sachen zu tun, wie die Ausgabe gegen XSS Schutz, wie Phil Haack demonstrated.

Phil Haack, Scott Guthrie und Scott Hanselman haben 4.

1

Ich denke, es wird sichergestellt, dass der Text innerhalb enthaltenen bereinigt, so dass Skript Java kann nicht in die Seite

so, wenn Sie einen messagebox in auf der Seite

userdata = alert ("textstring") 

<%= userdata %> 

zeigen

haben injizierenden
<%: userdata %> 

zeigt den Text 'alert ("Textstring")'

4

Es wird automatisch HTML-codieren die eingeschlossenen Ausdruck.

So ...

<%: yourString %> 

... entspricht ...

<%= HttpUtility.HtmlEncode(yourString) %> 

finden Sie in der folgenden MSDN-Link für weitere Informationen:

1

Eigentlich ausführlich über neue und verbesserte Funktionen in .NET gebloggt this Google search führen mich zu this explanation of Scott Guthrie.

+0

Das führt mich zur nächsten Frage: Ich frage mich, warum Google keine Ergebnisse für "<%: %>" gibt, obwohl diese Zeichenfolge im Titel und Header der Seite richtig ist ... –

+0

Sie haben Recht, es war ein Glücklicherweise wurde das Keyword "<%: %>" nicht verwendet, daher hat Google die Ergebnisse für "asp.net 4 new syntax" angezeigt. Google unterstützt das Entwischen von Interpunktionszeichen nicht, und ich habe keine Problemumgehung dafür gefunden. – Prutswonder

+0

sicherlich nicht deine Schuld. Danke für den Link :-) –

0

Sein Zweck ist es, zu verhindern, XSS-Angriffe über die Codierung der HTML.