Skip to main content

Classe C# per serializzare e deserializzare oggetti in XML e JSON in ASP.NET

A grande richiesta condivido un piccolo helper, realizzato ormai diversi anni orsono, che ancora utilizzo quando ho bisogno di effettuare operazioni di Serialize/Deserialize di oggetti POCO in C#: i formati supportati al momento sono XML e JSON, ovvero i più diffusi e utilizzati in ambito web, ma è possibile estenderla anche ad altri.

Come potrete vedere si tratta di una semplice classe statica che include una serie di “coppie di metodi” per la serializzazione e deserializzazione corrispondente: il primo elemento di ciascuna coppia – quello che si occupa della serializzazione di un oggetto T – è stato implementato in modo tale da poter essere utilizzato anche come  extension method, ovvero partendo direttamente dall’oggetto che si desidera serializzare. Può essere utilizzata all’interno di qualsiasi libreria di classi o anche direttamente inclusa in un progetto Web Forms, Windows Forms, MVC, WebAPI, .NET Core o di qualsiasi altro tipo.

Questo l’elenco dei metodi attualmente implementati:

  • SerializeObject / DeserializeObject
  • SerializeObjectUsingBinaryFormatter / DeserializeObjectUsingBinaryFormatter
  • SerializeToXML / DeserializeFromXML
  • SerializeToJson / DeserializeFromJson

(altro…)

 

Creare un Web Service SOAP con ASP.NET WCF, Visual Studio e IIS 8

Come abbiamo recentemente scritto qualche settimana fa in questo articolo, il modo più appropriato per creare un Web Service SOAP su ASP.NET è, ancora a fine 2016, quello di utilizzare il framework WCF (acronimo per Windows Communication Foundation): si tratta di una architettura che, nonostante gli anni comincino a farsi sentire, resta di gran lunga più versatile rispetto alle ormai più che obsolete pagine ASMX.

Nell’articolo precedente, oltre a risolvere un problema specifico legato alla configurazione di un servizio WCF su IIS8, abbiamo speso qualche minuto a ricordare le caratteristiche dell’architettura, presentata in pompa magna da Microsoft nell’ottobre 2008 e poi allontanata dai riflettori per lasciare spazio al paradigma Web API, adatto però solo ai Web Service REST. In questo articolo ci dedicheremo a riassumere i passaggi necessari per creare un Web Service SOAP partendo da zero utilizzando le ultime versioni degli strumenti necessari, ovvero: Visual Studio 2015 e Internet Information Services 8.

(altro…)

 

A potentially dangerous Request.Form value was detected from the client – come risolvere

Se sviluppate in ASP.NET e fate largo uso di webservice e/o form HTML vi sarete senz’altro imbattuti nel problema di far “digerire” al metodo di un Controller (o a una pagina ASPX, se lavorate ancora in ASP.NET Forms) caratteri potenzialmente pericolosi. L’errore che viene riportato è il seguente:

A potentially dangerous Request.Form value was detected from the client

Questo errore, come detto, viene prodotto quando vengono passati parametri GET/POST contenenti caratteri giudicati da ASP.NET potenzialmente pericolosi, quali ad esempio parentesi HTML, carattere percentuale, virgolette e via dicendo. Di seguito sono elencati i workaround che consentono di risolvere il problema, con la inevitabile raccomandazione di applicarli solo a patto di avere la piena consapevolezza delle implicazioni di sicurezza che comportano in termini di esposizione a possibili attacchi XSS (Cross-Site Script): per maggiori informazioni al riguardo consigliamo di leggere con grande attenzione questo articolo e questa voce Wikipedia, oltre all’ottima panoramica fornita dal sito ufficiale ASP.NET a riguardo.

Se siete certi di aver compreso l’argomento e volete comunque procedere, continuate a leggere.

(altro…)

 

ASP.NET Core and Angular 2, primi dati di vendita: Big in Japan! (e in UK)

A 72 ore dall’uscita editoriale sui principali eBook store, il libro ASP.NET Core and Angular 2 è entrato nella Top 10 dei Best Seller di Amazon.co.jp e Amazon.co.uk nelle due principali categorie di riferimento Web Services e C#.

Di particolare rilievo è il piazzamento ottenuto in Giappone, dove il libro è attualmente primo in classifica in entrambe le categorie:

(altro…)