public bool HSM_Sign(FileRequest fr, bool cofirma, bool timestamp, tipoFirma TipoFirma, String AliasCertificato, String DominioCertificato, String OtpFirma, String PinCertificato, bool ConvertPdf, out DocsPaWR.FirmaResult esito) { InfoUtente infoUt = NttDataWA.UIManager.UserManager.GetInfoUser(); esito = new FirmaResult(); DocsPaWR.DocsPaWebService docsPaWS = ProxyManager.GetWS(); try { string tipoFirmaSTR = TipoFirma.ToString(); return(docsPaWS.HSM_SignConEsito(infoUt, fr, cofirma, timestamp, tipoFirmaSTR, AliasCertificato, DominioCertificato, OtpFirma, PinCertificato, ConvertPdf, out esito)); } catch (System.Exception ex) { //UIManager.AdministrationManager.DiagnosticError(ex); return(false); } }
/// <summary> /// Visualizzazione dell'esito della firma applicata ad uno o più documenti /// </summary> protected void ShowReport() { List <FirmaResult> firmaResult = new List <FirmaResult>(); List <FirmaDigitaleResultStatus> res = FirmaDigitaleResultManager.CurrentData; MassiveOperationReport report = new MassiveOperationReport(); foreach (FirmaDigitaleResultStatus temp in res) { MassiveOperationTarget target = MassiveOperationUtils.getItem(temp.IdDocument); MassiveOperationReport.MassiveOperationResultEnum result = MassiveOperationReport.MassiveOperationResultEnum.OK; if (target == null) { result = MassiveOperationReport.MassiveOperationResultEnum.KO; report.AddReportRow(temp.IdDocument, result, temp.StatusDescription); } else { if (!temp.Status) { result = MassiveOperationReport.MassiveOperationResultEnum.KO; } report.AddReportRow(target.Codice, result, temp.StatusDescription); } FirmaResult firmaTerminata = new FirmaResult(); firmaTerminata.fileRequest = new FileRequest(); //firmaTerminata.fileRequest. } if (!IsLF) { string[] pars = new string[] { "" + report.Worked, "" + report.NotWorked }; report.AddSummaryRow("Documenti lavorati: {0} - Documenti non lavorati: {1}", pars); this.generateReport(report, "Firma digitale massiva"); FirmaDigitaleResultManager.ClearData(); } else { HttpContext.Current.Session["massiveSignReport"] = report; FirmaDigitaleResultManager.ClearData(); } }
public bool HSM_Sign(FileRequest fr, bool cofirma, bool timestamp, tipoFirma TipoFirma, String AliasCertificato, String DominioCertificato, String OtpFirma, String PinCertificato, bool ConvertPdf) { bool retval = false; InfoUtente infoUt = DocsPAWA.UserManager.getInfoUtente(); DocsPaWR.DocsPaWebService docsPaWS = ProxyManager.getWS(); try { string tipoFirmaSTR = TipoFirma.ToString(); FirmaResult firmaResult = new FirmaResult(); retval = docsPaWS.HSM_Sign(infoUt, fr, cofirma, timestamp, tipoFirmaSTR, AliasCertificato, DominioCertificato, OtpFirma, PinCertificato, ConvertPdf); } catch (System.Exception ex) { //UIManager.AdministrationManager.DiagnosticError(ex); //return false; logger.Debug("Errore: " + ex.Message); } return(retval); }
protected void BtnSign_Click(object sender, EventArgs e) { ScriptManager.RegisterStartupScript(this, this.GetType(), "reallowOp", "reallowOp();", true); if (!string.IsNullOrEmpty(this.TxtHsmAlias.Text) && !string.IsNullOrEmpty(this.TxtHsmDomain.Text) && !string.IsNullOrEmpty(this.TxtHsmPin.Text) && !string.IsNullOrEmpty(this.TxtHsmLitOtp.Text) && (this.HsmLitPades.Checked || this.HsmLitP7M.Checked)) { string alias = this.TxtHsmAlias.Text; string dominio = this.TxtHsmDomain.Text; string pin = this.TxtHsmPin.Text; string otp = this.TxtHsmLitOtp.Text; DocsPaWR.FileRequest fileReq = null; if (FileManager.GetSelectedAttachment() == null) { fileReq = UIManager.FileManager.getSelectedFile(); } else { fileReq = FileManager.GetSelectedAttachment(); } bool isPdf = (FileManager.getEstensioneIntoSignedFile(fileReq.fileName).ToUpper() == "PDF"); //if (!idPdf && this.HsmLitPades.Checked && !this.HsmCheckConvert.Checked) //{ // ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('WarningHsmSignPDF', 'warning');} else {parent.ajaxDialogModal('WarningHsmSignPDF', 'warning');}", true); //} #region VERIFICA DIMENSIONE MASSIMA FILE int maxDimFileSign = 0; if (!string.IsNullOrEmpty(Utils.InitConfigurationKeys.GetValue(UserManager.GetUserInSession().idAmministrazione, Utils.DBKeys.FE_DO_BIG_FILE_MIN.ToString())) && !Utils.InitConfigurationKeys.GetValue(UserManager.GetUserInSession().idAmministrazione, Utils.DBKeys.FE_DO_BIG_FILE_MIN.ToString()).Equals("0")) { maxDimFileSign = Convert.ToInt32(Utils.InitConfigurationKeys.GetValue(UserManager.GetUserInSession().idAmministrazione, Utils.DBKeys.FE_DO_BIG_FILE_MIN.ToString())); } if (maxDimFileSign > 0 && Convert.ToInt32(fileReq.fileSize) > maxDimFileSign) { string maxSize = Convert.ToString(Math.Round((double)maxDimFileSign / 1048576, 3)); string msgDesc = "WarningStartProcessSignatureMaxDimFile"; ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('" + utils.FormatJs(msgDesc) + "', 'warning', '', '" + maxSize + "');} else {parent.ajaxDialogModal('" + utils.FormatJs(msgDesc) + "', 'warning', '', '" + maxSize + "');}", true); return; } #endregion string msgError = CheckSign(fileReq, isPdf); if (!string.IsNullOrEmpty(msgError)) { ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('" + msgError + "', 'warning');} else {parent.ajaxDialogModal('" + msgError + "', 'warning');}", true); } else { DigitalSignature.RemoteDigitalSignManager dsm = new DigitalSignature.RemoteDigitalSignManager(); // attenzione mancano questi dati in maschera, vanno popolati come quelli sopra, prendendo i valori corretti. //ABBATANGELI - Nuova gestione sign/cosign //bool cofirma = this.HsmRadioCoSign.Checked; //prendere dalla checkbox cofirma bool cofirma = this.optCofirma.Checked; bool timestamp = this.HsmCheckMarkTemporal.Checked; //prendere dalla checkbox timestamp DigitalSignature.RemoteDigitalSignManager.tipoFirma tipoFirma = new DigitalSignature.RemoteDigitalSignManager.tipoFirma(); if (this.HsmLitPades.Checked) { tipoFirma = DigitalSignature.RemoteDigitalSignManager.tipoFirma.PADES; } else { tipoFirma = DigitalSignature.RemoteDigitalSignManager.tipoFirma.CADES; //Non posso firmare parallelemente un file firmato PADES con CADES, quindi impongo firma annidata if (fileReq.firmato.Equals("1") && (fileReq.tipoFirma == TipoFirma.PADES || fileReq.tipoFirma == TipoFirma.PADES_ELETTORNICA)) { cofirma = false; } } try { DigitalSignature.RemoteDigitalSignManager.Memento m = new DigitalSignature.RemoteDigitalSignManager.Memento { Alias = alias, Dominio = dominio }; //Intanto salvo il memento dsm.HSM_SetMementoForUser(m); } catch (System.Exception ex) { UIManager.AdministrationManager.DiagnosticError(ex); return; } bool retval = false; bool convert = !isPdf && this.HsmCheckConvert.Checked; DocsPaWR.FirmaResult firmaResult = new FirmaResult(); try { //ABBATANGELI - Rischiesta sempre "cofirma" nel caso sia stata già apposta la prima firma //if (fileReq.firmato == "1") // cofirma = true; retval = dsm.HSM_Sign(fileReq, cofirma, timestamp, tipoFirma, alias, dominio, otp, pin, convert, out firmaResult); } catch (System.Exception ex) { ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('ErrorHsmSignOtp', 'error');} else {parent.ajaxDialogModal('ErrorHsmSignOtp', 'error');}", true); return; } if (retval) { //che famo se retval è true tocca refreschare la lista come nell amascera firma tradizionale this.SetNewFile(fileReq); ScriptManager.RegisterStartupScript(this, this.GetType(), "closeAjaxModal", "parent.closeAjaxModal('HSMSignature', 'up');", true); } else { // è accaduto un inconveniente.. la firma non è andata a buon fine... string warningEsitoFirma = string.Empty; string errorText = string.Empty; if (firmaResult.esito != null && !string.IsNullOrEmpty(firmaResult.esito.Codice)) { warningEsitoFirma = firmaResult.esito.Codice; } if (string.IsNullOrEmpty(warningEsitoFirma)) { ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('ErrorHsmSign', 'error', '', '" + errorText + "');} else {parent.ajaxDialogModal('ErrorHsmSign', 'error', '', '" + errorText + "');}", true); } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('" + warningEsitoFirma + "', 'warning');} else {parent.ajaxDialogModal('" + warningEsitoFirma + "', 'warning');}", true); } } } } else { ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('WarningHsmSign', 'warning');} else {parent.ajaxDialogModal('WarningHsmSign', 'warning');}", true); } }