Archive

Archive for the ‘C #’ Category

Esportare dati in formato ODS (Foglio di Calcolo OpenDocument)

July 15, 2010 admin No comments
public static void ExportToOds(DataSet source, string fileName)
{
   System.IO.StreamWriter excelDoc;
   excelDoc = new System.IO.StreamWriter(fileName);
   excelDoc.Write("<table>");
   excelDoc.Write("<tr>");

   for (int x = 0; x < source.Tables[0].Columns.Count; x++)
   {
      excelDoc.Write("<td align=\"left\" valign=\"middle\" width=\"100%\"><strong>");
      excelDoc.Write(source.Tables[0].Columns[x].ColumnName);
      excelDoc.Write("</strong></td>");
   }

   excelDoc.Write("</tr>");

   foreach (DataRow x in source.Tables[0].Rows)
   {
      excelDoc.Write("<tr>");

      for (int y = 0; y < source.Tables[0].Columns.Count; y++)
      {
          excelDoc.Write("<td align=\"left\" valign=\"middle\">");
          excelDoc.Write(string.Format("{0}", x[y]));
          excelDoc.Write("</td>");
      }

      excelDoc.Write("</tr>");
   }

   excelDoc.Write("</table>");
   excelDoc.Close();
}
 

SDK per la firma digitale con algoritmo SHA-256

September 1, 2009 admin No comments

In seguito alla Determinazione Commissariale n. 69/2010 (del 28 luglio 2010) che modifica la Deliberazione CNIPA n. 45/2009 sono stati modificati i termini per l’utilizzo delle nuove regole a proposito di Firma Digitale.

Entro il 31 dicembre 2010 tutte le applicazioni che sfruttano questa tecnologia dovranno implementare i nuovi formati di firma (tra cui il più robusto algoritmo SHA-256) a partire dal 31 agosto 2010; devono rendere disponibili dette applicazioni entro il 31 dicembre 2010. Infatti oltre il 30 giugno 2011 i documenti firmati con il vecchio formato non saranno più validi. (Per approfondimenti: www.cnipa.gov.it)

Abbiamo quindi cercato una libreria che implementasse il famigerato SHA-256 e che permettesse varie tipologie di firma e di verifica. Abbiamo provato ZapSign e ci è sembrata molto completa. E’ possibile trovare ulteriori informazioni e richiedere una versione di prova tramite il sito ZapSuite

ESEMPI DI UTILIZZO

Attivazione della liberia:

try
   {
        License.Activate(activationCode);
   }
catch (LicenseException ex)
   {
         return;
   }
 

Firma Semplice:

Pkcs7Result res = Pkcs7Utility.CreatePkcs7(string fileInput, string Pin, string fileOutput);
if (res != Pkcs7Result.Ok)
  {
      Error("Errore durante la firma: {0} – {1}", Pkcs7Utility.LastError, Pkcs7Utility.LastErrorMessage);
      return;
  }
 

Firma Parallela o Controfirma

Pkcs7Result res = Pkcs7Utility.AddSignature(fileInput, Pin, tmpFile);
 

Ottenere i certificati di firma:

X509Certificate2Collection listaCertificati;
bool  res = Pkcs7Utility.VerifyPkcs7(txtSelectedFile.Text, out listaCertificati, true);
 

Mostrare un certificato:

Pkcs7Utility.ShowCertificate(certificato);
 

Estrarre dati originali dal file firmato:

string fileOutput = Pkcs7Utility.GetOriginalFilename(fileInput);
bool res = Pkcs7Utility.ExtractDataFromPkcs7(fileInput, fileOutput);