AutoEncode in ASP.NET 4.0

Sinceramente mi ero chiesto perchè non esistesse in ASP.NET un qualcosa per effettuare l’encode di una stringa nel markup senza ricorrere ogni volta all’apposito metodo della classe HttpUtility; ovviamente questo non è un grandissimo problema, ma allunga i tempi di scrittura del codice e, IMHO, aggiunge verbosità allo stesso.

Per comodità mi sono realizzato un extension method per le stringhe che si occupa di effettuare l’encode/decode sia per l’html che per l’url, facilitando un po’ la scrittura del codice, come mostrato di seguito:

<!-- metodo classico -->
<%= Server.HtmlEncode(myVar) %>

<!-- con extension method -->
<%= myVar.EncodeHtml() %>

In ASP.NET 4.0 esisterà qualcosa di ancor più comodo ed immediato - lo annuncia Phil Haac qui - ossia una nuova “sintassi” per i blocchi di codice nelle pagine aspx (ovviemente vale anche per i controlli, view, ecc)  che effettuerà per noi l’encode in HTML: infatti oltre al binding ed al response ci sarà Html Encoding, come mostrato di seguito:

<%: myVar %>

Sarebbe bello poter specificare un provider per cambiare il sistema di encoding, e magari anche sostituire l’HtmlEncode della classe HttpUtility con quello della Anti-XSS.


Comments