Esempio n. 1
0
        public void Leitura(string Arquivo, string PathSalvamento)
        {
            NBioAPI HandleBio;
            uint    Retorno    = NBioAPI.Error.NONE;
            uint    NenhumErro = NBioAPI.Error.NONE;

            NBioAPI.Type.MINCONV_DATA_TYPE importType;
            NBioAPI.Export           m_Export;
            NBioAPI.Type.HFIR        processedFIR;
            NBioAPI.Type.INIT_INFO_0 initInfo0;
            uint nSize = 0;

            byte[] minData = null;
            //-----------------------

            try
            {
                FileStream   fs = new FileStream(PathSalvamento + Arquivo, FileMode.Open, FileAccess.Read);
                BinaryReader fr = new BinaryReader(fs);
                nSize   = (uint)fs.Length;
                minData = new byte[nSize];
                fr.Read(minData, 0, (int)nSize);
                fr.Close();
                fs.Close();
            }
            catch (FileNotFoundException e)
            {
                MessageBox.Show("Erro localizar arquivo biometrico\n" + e.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            HandleBio = new NBioAPI();
            HandleBio.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao verificar digital", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                HandleBio.Dispose();
                return;
            }
            importType = NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_FDU;
            m_Export   = new NBioAPI.Export(HandleBio);
            Retorno    = m_Export.FDxToNBioBSPEx(minData, nSize, importType, NBioAPI.Type.FIR_PURPOSE.VERIFY, out processedFIR);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao verificar digital", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                HandleBio.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                HandleBio.Dispose();
                return;
            }

            Retorno = HandleBio.GetInitInfo(out initInfo0);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao coletar informações do dispositivo", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                HandleBio.Dispose();
                return;
            }
            initInfo0.EnrollImageQuality = 90;
            initInfo0.VerifyImageQuality = 90;
            initInfo0.SecurityLevel      = 7;
            Retorno = HandleBio.SetInitInfo(initInfo0);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao setar informações iniciais do dispositivo", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                HandleBio.Dispose();
                return;
            }

            Boolean bResult;

            Retorno = HandleBio.Verify(processedFIR, out bResult, null);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao verificar digital", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (!bResult)
                {
                    MessageBox.Show("Vendedor não autenticado", "Falha ao autenticar", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    try
                    {
                        MessageBox.Show("Autenticação realizada com sucesso", "Sucesso!!", MessageBoxButtons.OK, MessageBoxIcon.None);
                        FileStream   validacao = new FileStream(Path.GetTempPath() + "Result_" + Arquivo, FileMode.CreateNew, FileAccess.Write);
                        BinaryWriter fw        = new BinaryWriter(validacao);
                        fw.Write("#$&%&$*%¨$*$¨%$*&($$)$)$¨$&¨%$*$&¨#%%(*%)");
                        fw.Close();
                        validacao.Close();
                    }
                    catch (FileNotFoundException e)
                    {
                        MessageBox.Show("Erro localizar arquivo biometrico\n" + e.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
            }

            HandleBio.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
        }
Esempio n. 2
0
        public void Gravar(string Arquivo, string PathSalvamento)
        {
            //Declaracao de variaveis
            NBioAPI HandleBio;
            uint    Retorno     = NBioAPI.Error.NONE;
            uint    NenhumErro  = NBioAPI.Error.NONE;
            short   Dispositivo = NBioAPI.Type.DEVICE_ID.AUTO;

            NBioAPI.Type.HFIR CapturedFir;
            NBioAPI.Export    export;
            NBioAPI.Type.MINCONV_DATA_TYPE tipo;
            NBioAPI.Export.EXPORT_DATA     exportDados;
            NBioAPI.Type.INIT_INFO_0       initInfo0;
            //-----------------------
            //-----------------------
            HandleBio = new NBioAPI();
            Retorno   = HandleBio.OpenDevice(Dispositivo);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao cadastrar biometria", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                HandleBio.Dispose();
                return;
            }

            Retorno = HandleBio.GetInitInfo(out initInfo0);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao coletar informações do dispositivo", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                HandleBio.Dispose();
                return;
            }
            initInfo0.EnrollImageQuality = 90;
            initInfo0.VerifyImageQuality = 90;
            initInfo0.SecurityLevel      = 7;
            Retorno = HandleBio.SetInitInfo(initInfo0);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao setar informações iniciais do dispositivo", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                HandleBio.Dispose();
                return;
            }

            Retorno = HandleBio.Capture(NBioAPI.Type.FIR_PURPOSE.VERIFY, out CapturedFir, NBioAPI.Type.TIMEOUT.DEFAULT, null, null);
            if (Retorno != NenhumErro)
            {
                MessageBox.Show("Erro ao cadastrar biometria", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                HandleBio.CloseDevice(Dispositivo);
                HandleBio.Dispose();
                return;
            }

            export = new NBioAPI.Export(HandleBio);
            tipo   = NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_FDU;
            export.NBioBSPToFDx(CapturedFir, out exportDados, tipo);

            for (int f = 0; f < exportDados.FingerNum; f++)
            {
                for (int s = 0; s < exportDados.SamplesPerFinger; s++)
                {
                    try
                    {
                        FileStream   fs = new FileStream(PathSalvamento + Arquivo, FileMode.OpenOrCreate, FileAccess.Write);
                        BinaryWriter fw = new BinaryWriter(fs);

                        fw.Write(exportDados.FingerData[f].Template[s].Data);

                        fw.Close();
                        fs.Close();
                    }
                    catch (FileNotFoundException e)
                    {
                        MessageBox.Show("Erro criar template biometrico\n" + e.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        HandleBio.CloseDevice(Dispositivo);
                        HandleBio.Dispose();
                        return;
                    }
                }
            }
            HandleBio.CloseDevice(Dispositivo);
            HandleBio.Dispose();
        }