Nello script #594 abbiamo visto come firmare un documento XML (o più oggetti XML) secondo le specifiche del W3C. In questo script vedremo come verificare che la firma sia corretta. Useremo sempre la classe SignedXml che è in grado, dato il documento firmato, di ricostruire le informazioni sull?algoritmo utilizzato, la chiave pubblica da utilizzare e il digest calcolato. Anche qui è importante indicare che le chiavi sono da memorizzare sulla macchina poiché ASP,NET non dispone di un profile dove memorizzarle:
// Carico il documento xml XmlDocument doc = new XmlDocument(); doc.Load(xmlFile.PostedFile.InputStream); bool v = false; // Creo l'oggetto per firmare SignedXml xs = new SignedXml(); // Indico che gli algoritmi RSA devono memorizzare // le chiavi sulla macchina RSACryptoServiceProvider.UseMachineKeyStore = true; // Carico il documento in modo che carichi da solo // la KeyInfo e le Reference e le modalità di firma xs.LoadXml(doc.DocumentElement); // Verifico la firma v = xs.CheckSignature(); // Mando in output l'xml risultante Response.Write((v)?"Documento valido":"Documento non valido");
Questo meccanismo di firma e controllo verrà utilizzato nelle future specifiche di WS-Security volte a rendere sicuri i WebService che come sapete, si basano su dialoghi in XML.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Visualizzare contenuti Fullscreen con HTML5
- Disabilitare un bottone in una pagina HTML pensando all'accessibilità
- Realizzare siti sicuri con ASP.NET Web Pages
- Focus dei tag input con HTML5
- Disponibile la beta di Silverlight 5
- Ricavare lo spazio occupato su disco dal nostro sito