Пример #1
0
    protected void CmsStartProcess()
    {
        EFDal ed = new EFDal();
        string  personelTCKimlikNo = ed.UserNamedenPersonelTCKimlikNoDon(Context.User.Identity.Name);
        string[] dahaONcedenImzalanmisBelgeler = new string[] {};

        try
        {
            EgaTransIdler.Clear();
            string DataToBeSigned = string.Empty;

            string tut = Session["ImzalanacakBelgelerinIdleri"].ToString();
            string[] ImzalanacakDosyaIdler = tut.Split(',');

            int i = 0;
            foreach (string imzalanacakDosyaId in ImzalanacakDosyaIdler)
            {
                string tempfilePath = ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(imzalanacakDosyaId));
                if (!ed.PersonelDokumaniDahOnceImzalamisMi(tempfilePath, personelTCKimlikNo))
                //if(true)
                {
                    ServiceCMS client = new ServiceCMS();
                    CmsHashRequestType request = new CmsHashRequestType();

                    byte[] bytedata = File.ReadAllBytes(tempfilePath);

                    request.DeviceType = GeneralTypesDeviceType.SmartCard;
                    request.OriginalData = bytedata;

                    request.OriginalDataSha1Hash = SHA1Managed.Create().ComputeHash(request.OriginalData);
                    request.ReqAppId = "12345"; // Guid.NewGuid().ToString();
                    //EgaTransId = request.ReqAppId;

                    Session["OriginalCMSSha1Hash"] = request.OriginalDataSha1Hash;
                    CmsHashResponseType response = client.CalculateHash(request);
                    if (response.ResponseInfo.ResultCode == GeneralTypesResultCodeType.Successful)
                    {

                        EgaTransId = response.ResponseInfo.EgaTransId;
                        //Session["EgaTransId"] = EgaTransId;
                        EgaTransIdler.Add(Convert.ToInt32(imzalanacakDosyaId), EgaTransId);
                        string cmsImzaTipi = "P";
                        if (response.CmsImzaTipi == GeneralTypesCmsImzaTipi.Paralel)
                            cmsImzaTipi = "P";
                        else
                            cmsImzaTipi = "S";

                        DataToBeSigned += response.DataToBeSigned + "é" + "SHA256" + "é" + cmsImzaTipi + "é";
                    }
                }
                else
                {
                    dahaONcedenImzalanmisBelgeler[i] = ed.FindImzaliDosya(Convert.ToInt32(imzalanacakDosyaId)).Tables[0].Rows[0]["IstId"].ToString();
                    lblUyari.Text += dahaONcedenImzalanmisBelgeler[i];//ed.FindImzaliDosya(Convert.ToInt32(imzalanacakDosyaId)).Tables[0].Rows[0]["IstId"].ToString()+"<br/>";
                }
                i++;
            }

            //ltrApplet.Text = String.Format(appletTag, appletPath, DataToBeSigned);
            //string personelTCKimlikNo = ed.UserNamedenPersonelTCKimlikNoDon(Context.User.Identity.Name);

            //Sadece log olmuş kullanıcının kimliği ile imzanın kimliği uyuşursa imza işlemine devam edeilecek..
            ltrApplet.Text = String.Format(appletTag, appletPath, DataToBeSigned, ed.UserNamedenPersonelTCKimlikNoDon(Context.User.Identity.Name));

            if (dahaONcedenImzalanmisBelgeler.Count() > 0)
            {
                lblUyari.Text = lblUyari.Text.Insert(0,"Bazı belgeler daha önce imzalamış oldugunuz için 2. kez imzalanmayacak");
                notif1.Title = "Daha önce imzalanmış  belgeler";
                notif1.Show();
            }
        }
        catch (Exception e)
        {
            lblUyari.Text = "Hata: " + e.Message;

        }
    }
Пример #2
0
    protected bool CmsCompleteProcess()
    {
        EFDal  ed  = new EFDal();
        string tut = Session["ImzalanacakBelgelerinIdleri"].ToString();

        string[] ImzalanacakDosyaIdler = tut.Split(',');

        bool sonuc = true;

        try
        {
            string   detachedAllDataB64 = hidDetached64Data.Value;
            string[] detachedSigned     = detachedAllDataB64.Split('é');

            for (int i = 0; i < detachedSigned.Length; i++)
            {
                ServiceCMS client = new ServiceCMS();
                CmsSignatureRequestType request = new CmsSignatureRequestType();

                decimal evrakBelgeID = EgaTransIdler.Keys.ElementAt(i);
                string  egatransid   = string.Empty;
                EgaTransIdler.TryGetValue(evrakBelgeID, out egatransid);
                request.EgaTransId = egatransid;
                request.ReqAppId   = "12345";

                byte[] bytedata = File.ReadAllBytes(ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(ImzalanacakDosyaIdler[i])));

                request.OriginalDataSha1Hash    = SHA1Managed.Create().ComputeHash(bytedata);
                request.ArchiveType             = ImzaTipi.ESXLONG;
                request.ArchiveTypeSpecified    = true;
                request.SignedData              = detachedSigned[i];
                request.ZdParameters            = new GeneralTypesZamanDamgasiType();
                request.ZdParameters.ZdUrl      = ConfigurationManager.AppSettings["ZdUrl"].ToString();
                request.ZdParameters.ZdUserName = ConfigurationManager.AppSettings["ZdUserName"].ToString();
                request.ZdParameters.ZdPassword = ConfigurationManager.AppSettings["ZdPassword"].ToString();
                request.ZdParameters.ZdProvider = ConfigurationManager.AppSettings["ZdProvider"].ToString();
                CmsSignatureResponseType response = client.ProcessSignature(request);
                if (response.ResponseInfo.ResultCode == GeneralTypesResultCodeType.Successful)
                {
                    Byte[] bak = response.SignedCms;
                    File.WriteAllBytes(ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(ImzalanacakDosyaIdler[i])), bak);


                    //Burada mutlaka verştabanını ilgili personel imzaladı olarak update etmek gerekiyor..kapak ve veri dosyalarınının birleştirilmesi sırasında imza bekliyor olarak eklenmişti personel
                    //Burada mutlaka verştabanına bir işaret atmak gerekli kimler imzalamış, belki nereyi imzalmış bilgisi de olmalı
                    int    ImzaliDosyalarId          = 0;
                    string kullaniciAdi              = Context.User.Identity.Name;
                    Guid   ImzalamasiGerekenPersonel = new Guid();
                    ImzalamasiGerekenPersonel = ed.UserNamedenPersonelUNDon(kullaniciAdi);
                    bool PersonelImzalamismi = true;
                    ImzaliDosyalarId = Convert.ToInt32(ImzalanacakDosyaIdler[i]);
                    int IstId = ed.imzaliDosyalarIddenIstIdDon(Convert.ToInt32(ImzalanacakDosyaIdler[i]));

                    //Bir kalibrasyonu yapanı  dah once ekelimişti onu imzaladı olarak güncelle, imza tarihini de güncelle
                    //bool basarimKalYapanEkleme=ed.spImzaBekleyenDokumanlaraEkle(Convert.ToInt32(ImzalanacakDosyaIdler[i]), ImzalamasiGerekenPersonel, PersonelImzalamismi,true,IstId);
                    bool basarimImzaBekleyenDokumaniGuncelle = ed.ImzaBekleyenDokumaniGuncelle(ImzaliDosyalarId, ImzalamasiGerekenPersonel);

                    //Bir de birim müdürünü ekle Imzalaması gerekli diye ImzaBej-kleyenler tablosuna kalibrasyonu yapan imzalarken düştü zaten

                    Guid birimAmiri = new System.Guid();
                    birimAmiri = ed.BirimAmiriDon(ed.kal_BolgeKoduDon(kullaniciAdi));
                    if (ImzalamasiGerekenPersonel != birimAmiri)
                    {
                        PersonelImzalamismi = false;
                        bool basarimMudurEkleme = ed.spImzaBekleyenDokumanlaraEkle(Convert.ToInt32(ImzalanacakDosyaIdler[i]), birimAmiri, PersonelImzalamismi, true, IstId);
                    }
                    DataSet ds = ed.spIsteginTumImzaIsleriTamamMi(IstId);
                    if (ds.Tables[0].Rows.Count == 0) //Yani imzalanmamış istek kalemi kalmamış
                    {
                        ed.ImzaIsleriTamamlanmisIsteklereEkle(Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["IstekNo"].ToString()), Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["BolgeKodu"].ToString()), Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["YIL"].ToString()));
                    }
                }
                else
                {
                    lblError.Text = response.ResponseInfo.ResultMessage;
                    sonuc         = false;
                }
            }
        }
        catch (Exception ex)
        {
            lblError.Text = ex.Message;
            sonuc         = false;
        }
        return(sonuc);
    }
Пример #3
0
    protected bool CmsCompleteProcess()
    {
        EFDal ed = new EFDal();
        string tut = Session["ImzalanacakBelgelerinIdleri"].ToString();
        string[] ImzalanacakDosyaIdler = tut.Split(',');

        bool sonuc = true;
        try
        {
            string detachedAllDataB64 = hidDetached64Data.Value;
            string[] detachedSigned = detachedAllDataB64.Split('é');

            for (int i = 0; i < detachedSigned.Length; i++)
            {
                ServiceCMS client = new ServiceCMS();
                CmsSignatureRequestType request = new CmsSignatureRequestType();

                decimal evrakBelgeID = EgaTransIdler.Keys.ElementAt(i);
                string egatransid = string.Empty;
                EgaTransIdler.TryGetValue(evrakBelgeID, out egatransid);
                request.EgaTransId = egatransid;
                request.ReqAppId = "12345";

                byte[] bytedata = File.ReadAllBytes(ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(ImzalanacakDosyaIdler[i])));

                request.OriginalDataSha1Hash = SHA1Managed.Create().ComputeHash(bytedata);
                request.ArchiveType = ImzaTipi.ESXLONG;
                request.ArchiveTypeSpecified = true;
                request.SignedData = detachedSigned[i];
                request.ZdParameters = new GeneralTypesZamanDamgasiType();
                request.ZdParameters.ZdUrl = ConfigurationManager.AppSettings["ZdUrl"].ToString();
                request.ZdParameters.ZdUserName = ConfigurationManager.AppSettings["ZdUserName"].ToString();
                request.ZdParameters.ZdPassword = ConfigurationManager.AppSettings["ZdPassword"].ToString();
                request.ZdParameters.ZdProvider = ConfigurationManager.AppSettings["ZdProvider"].ToString();
                CmsSignatureResponseType response = client.ProcessSignature(request);
                if (response.ResponseInfo.ResultCode == GeneralTypesResultCodeType.Successful)
                {

                    Byte[] bak = response.SignedCms;
                    File.WriteAllBytes(ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(ImzalanacakDosyaIdler[i])), bak);

                    //Burada mutlaka verştabanını ilgili personel imzaladı olarak update etmek gerekiyor..kapak ve veri dosyalarınının birleştirilmesi sırasında imza bekliyor olarak eklenmişti personel
                    //Burada mutlaka verştabanına bir işaret atmak gerekli kimler imzalamış, belki nereyi imzalmış bilgisi de olmalı
                    int ImzaliDosyalarId = 0;
                    string kullaniciAdi = Context.User.Identity.Name;
                    Guid ImzalamasiGerekenPersonel=new Guid();
                    ImzalamasiGerekenPersonel = ed.UserNamedenPersonelUNDon(kullaniciAdi);
                    bool PersonelImzalamismi = true;
                    ImzaliDosyalarId = Convert.ToInt32(ImzalanacakDosyaIdler[i]);
                    int IstId = ed.imzaliDosyalarIddenIstIdDon(Convert.ToInt32(ImzalanacakDosyaIdler[i]));

                    //Bir kalibrasyonu yapanı  dah once ekelimişti onu imzaladı olarak güncelle, imza tarihini de güncelle
                    //bool basarimKalYapanEkleme=ed.spImzaBekleyenDokumanlaraEkle(Convert.ToInt32(ImzalanacakDosyaIdler[i]), ImzalamasiGerekenPersonel, PersonelImzalamismi,true,IstId);
                    bool basarimImzaBekleyenDokumaniGuncelle = ed.ImzaBekleyenDokumaniGuncelle(ImzaliDosyalarId,ImzalamasiGerekenPersonel);

                    //Bir de birim müdürünü ekle Imzalaması gerekli diye ImzaBej-kleyenler tablosuna kalibrasyonu yapan imzalarken düştü zaten

                    Guid birimAmiri = new System.Guid();
                    birimAmiri=ed.BirimAmiriDon(ed.kal_BolgeKoduDon(kullaniciAdi));
                    if (ImzalamasiGerekenPersonel != birimAmiri)
                    {
                        PersonelImzalamismi = false;
                        bool basarimMudurEkleme = ed.spImzaBekleyenDokumanlaraEkle(Convert.ToInt32(ImzalanacakDosyaIdler[i]), birimAmiri, PersonelImzalamismi, true, IstId);
                    }
                    DataSet ds = ed.spIsteginTumImzaIsleriTamamMi(IstId);
                    if (ds.Tables[0].Rows.Count == 0) //Yani imzalanmamış istek kalemi kalmamış
                    {
                        ed.ImzaIsleriTamamlanmisIsteklereEkle(Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["IstekNo"].ToString()), Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["BolgeKodu"].ToString()), Convert.ToInt32(ed.kal_IstIddenIstekDonBolgeKodsuz(IstId).Tables[0].Rows[0]["YIL"].ToString()));
                    }
                }
                else
                {
                    lblError.Text = response.ResponseInfo.ResultMessage;
                    sonuc = false;
                }

            }
        }
        catch (Exception ex)
        {
            lblError.Text = ex.Message;
            sonuc = false;
        }
        return sonuc;
    }
Пример #4
0
    protected void CmsStartProcess()
    {
        EFDal  ed = new EFDal();
        string personelTCKimlikNo = ed.UserNamedenPersonelTCKimlikNoDon(Context.User.Identity.Name);

        string[] dahaONcedenImzalanmisBelgeler = new string[] {};

        try
        {
            EgaTransIdler.Clear();
            string DataToBeSigned = string.Empty;

            string   tut = Session["ImzalanacakBelgelerinIdleri"].ToString();
            string[] ImzalanacakDosyaIdler = tut.Split(',');

            int i = 0;
            foreach (string imzalanacakDosyaId in ImzalanacakDosyaIdler)
            {
                string tempfilePath = ed.ImzaliDosyalarIddenPathDon(Convert.ToInt32(imzalanacakDosyaId));
                if (!ed.PersonelDokumaniDahOnceImzalamisMi(tempfilePath, personelTCKimlikNo))
                //if(true)
                {
                    ServiceCMS         client  = new ServiceCMS();
                    CmsHashRequestType request = new CmsHashRequestType();

                    byte[] bytedata = File.ReadAllBytes(tempfilePath);

                    request.DeviceType   = GeneralTypesDeviceType.SmartCard;
                    request.OriginalData = bytedata;



                    request.OriginalDataSha1Hash = SHA1Managed.Create().ComputeHash(request.OriginalData);
                    request.ReqAppId             = "12345"; // Guid.NewGuid().ToString();
                    //EgaTransId = request.ReqAppId;

                    Session["OriginalCMSSha1Hash"] = request.OriginalDataSha1Hash;
                    CmsHashResponseType response = client.CalculateHash(request);
                    if (response.ResponseInfo.ResultCode == GeneralTypesResultCodeType.Successful)
                    {
                        EgaTransId = response.ResponseInfo.EgaTransId;
                        //Session["EgaTransId"] = EgaTransId;
                        EgaTransIdler.Add(Convert.ToInt32(imzalanacakDosyaId), EgaTransId);
                        string cmsImzaTipi = "P";
                        if (response.CmsImzaTipi == GeneralTypesCmsImzaTipi.Paralel)
                        {
                            cmsImzaTipi = "P";
                        }
                        else
                        {
                            cmsImzaTipi = "S";
                        }

                        DataToBeSigned += response.DataToBeSigned + "é" + "SHA256" + "é" + cmsImzaTipi + "é";
                    }
                }
                else
                {
                    dahaONcedenImzalanmisBelgeler[i] = ed.FindImzaliDosya(Convert.ToInt32(imzalanacakDosyaId)).Tables[0].Rows[0]["IstId"].ToString();
                    lblUyari.Text += dahaONcedenImzalanmisBelgeler[i];//ed.FindImzaliDosya(Convert.ToInt32(imzalanacakDosyaId)).Tables[0].Rows[0]["IstId"].ToString()+"<br/>";
                }
                i++;
            }

            //ltrApplet.Text = String.Format(appletTag, appletPath, DataToBeSigned);
            //string personelTCKimlikNo = ed.UserNamedenPersonelTCKimlikNoDon(Context.User.Identity.Name);


            //Sadece log olmuş kullanıcının kimliği ile imzanın kimliği uyuşursa imza işlemine devam edeilecek..
            ltrApplet.Text = String.Format(appletTag, appletPath, DataToBeSigned, ed.UserNamedenPersonelTCKimlikNoDon(Context.User.Identity.Name));

            if (dahaONcedenImzalanmisBelgeler.Count() > 0)
            {
                lblUyari.Text = lblUyari.Text.Insert(0, "Bazı belgeler daha önce imzalamış oldugunuz için 2. kez imzalanmayacak");
                notif1.Title  = "Daha önce imzalanmış  belgeler";
                notif1.Show();
            }
        }
        catch (Exception e)
        {
            lblUyari.Text = "Hata: " + e.Message;
        }
    }