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.
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.









Stampa
Snippet
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
