コード例 #1
0
ファイル: DigitalSignManager.cs プロジェクト: sebbalex/PITre
        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);
            }
        }
コード例 #2
0
        /// <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();
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: HSM_Signature.aspx.cs プロジェクト: sebbalex/PITre
        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);
            }
        }