Esempio n. 1
0
        private void Button1_Click_2(object sender, EventArgs e)
        {
            bool result;

            NBioAPI.Type.FIR_PAYLOAD myPayload = new NBioAPI.Type.FIR_PAYLOAD();
            m_NBioAPI.GetTextFIRFromHandle(m_hNewFIR, out m_textFIR, true);
            Console.WriteLine("verify " + m_textFIR.TextFIR);
            NBioAPI.Type.FIR_PURPOSE firpurpose;

            NBioAPI.Type.FIR_TEXTENCODE textencode = new NBioAPI.Type.FIR_TEXTENCODE();


            bool result2;

            m_NBioAPI.GetTextFIRFromHandle(m_hNewFIR, out textencode, true);
            m_NBioAPI.VerifyMatch(textencode, textencode, out result2, null);
            uint gui = m_NBioAPI.VerifyMatch(textencode, textencode, out result, null);

            Console.WriteLine("resultado " + result2);


            if (result)
            {
                Console.WriteLine("ok");
            }
            else
            {
                Console.WriteLine("notok");
            }
        }
Esempio n. 2
0
        public String CapturarDigitaisParaInscricao()
        {
            try
            {
                NBioAPI.Type.HFIR template = new NBioAPI.Type.HFIR();

                uint retorno = api.Enroll(out template, null);

                if (retorno == NBioAPI.Error.NONE)
                {
                    NBioAPI.Type.FIR_TEXTENCODE binario = new NBioAPI.Type.FIR_TEXTENCODE();
                    api.GetTextFIRFromHandle(template, out binario, false);
                    return(binario.TextFIR);
                }
                else
                {
                    Console.WriteLine(retorno);
                    return(null);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao capturar as digitais.", ex);
            }
        }
        private string CompararDigital(string Digital)
        {
            uint    ret;
            bool    result;
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.HFIR           hCapturedFIR = new NBioAPI.Type.HFIR();
            NBioAPI.Type.FIR_TEXTENCODE m_textFIR    = new NBioAPI.Type.FIR_TEXTENCODE();
            NBioAPI.Type.FIR_PAYLOAD    myPayload    = new NBioAPI.Type.FIR_PAYLOAD();

            m_textFIR.TextFIR = Digital.ToString();

            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            m_NBioAPI.Capture(out hCapturedFIR);

            ret = m_NBioAPI.VerifyMatch(hCapturedFIR, m_textFIR, out result, myPayload);


            if (result == true)
            {
                return("OK");
            }
            else
            {
                return("");
            }
        }
Esempio n. 4
0
        //recebe HFIR e retorna TEXTENCODE
        public NBioAPI.Type.FIR_TEXTENCODE Fir_to_TextEncode(NBioAPI.Type.HFIR hfir)
        {
            NBioAPI.Type.FIR_TEXTENCODE txtencode = new NBioAPI.Type.FIR_TEXTENCODE();
            m_NBioAPI.GetTextFIRFromHandle(hfir, out txtencode, true);

            return(txtencode);
        }
Esempio n. 5
0
        public string Enroll()
        {
            NBioAPI.Type.FIR_TEXTENCODE m_textFIR   = new NBioAPI.Type.FIR_TEXTENCODE();
            NBioAPI.Type.HFIR           NewFIR      = new NBioAPI.Type.HFIR();
            NBioAPI.Type.WINDOW_OPTION  m_WinOption = new NBioAPI.Type.WINDOW_OPTION();
            m_WinOption.WindowStyle = (uint)NBioAPI.Type.WINDOW_STYLE.NO_WELCOME;
            string Retorno = "";
            uint   device  = m_NBioAPI.OpenDevice(255);

            if (device != NBioAPI.Error.NONE)
            {
                return(null);
            }

            uint ret = m_NBioAPI.Enroll(out NewFIR, null);

            if (NewFIR != null)
            {
                m_NBioAPI.GetTextFIRFromHandle(NewFIR, out m_textFIR, true);
                if (m_textFIR.TextFIR != null)
                {
                    m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                    Retorno = m_textFIR.TextFIR.ToString();
                }
            }
            m_NBioAPI.CloseDevice(255);
            return(Retorno);
        }
Esempio n. 6
0
        private bool AcessoBiometrico(out int CodigoUsuario, CPonto.CPontoClient oProxy, bool Infinito)
        {
            Biometria Bio = new Biometria();

            NBioAPI.Type.FIR_TEXTENCODE         oFirCapture = Bio.FIRDigital(0, PctDigital, LblQualidade, Infinito);
            NBioAPI.IndexSearch.FP_INFO         oInfoCompare;
            NBioAPI.IndexSearch.CALLBACK_INFO_0 CallBackInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
            uint ret;

            ret = oIndexSearch.IdentifyData(oFirCapture, 5, out oInfoCompare, CallBackInfo);
            if (ret != NBioAPI.Error.NONE)
            {
                MsgErro(ret);
                CodigoUsuario = 0;
                return(false);
            }

            int UID = (int)oInfoCompare.ID;

            CodigoUsuario = UID;
            CPonto.HASHDIGITAL oHash = oProxy.SelecionaHash(UID);
            if (oHash == null)
            {
                CodigoUsuario = 0;
                return(false);
            }
            CodigoUsuario = oHash.HaCodigoUsuario;
            return(true);
        }
Esempio n. 7
0
        //recebe TEXTENCODE retorna Bitmap
        public Bitmap Conversor(NBioAPI.Type.FIR_TEXTENCODE Fir_toImage)
        {
            NBioAPI.Export.EXPORT_AUDIT_DATA exportData;

            m_Export.NBioBSPToImage(Fir_toImage, out exportData);

            int nWidth  = (int)exportData.ImageWidth;
            int nHeight = (int)exportData.ImageHeight;

            {     // bmp image save...
                bmp = new Bitmap(nWidth, nHeight, PixelFormat.Format8bppIndexed);
                BitmapData data = bmp.LockBits(new Rectangle(0, 0, nWidth, nHeight), ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);

                System.Runtime.InteropServices.Marshal.Copy(exportData.AuditData[0].Image[0].Data, 0, data.Scan0, nWidth * nHeight);
                bmp.UnlockBits(data);
                ColorPalette GrayscalePalette = bmp.Palette;
                for (int i = 0; i < 256; i++)
                {
                    GrayscalePalette.Entries[i] = Color.FromArgb(i, i, i);
                }

                bmp.Palette = GrayscalePalette;

                // bmp.Save("RollImage.bmp");
            }

            //Image img = bmp;

            return(bmp);
        }
Esempio n. 8
0
 public void CarregarBiometrias(IEnumerable <Biometria> biometrias)
 {
     foreach (var biometria in biometrias)
     {
         var biometriaNitgen = new NBioAPI.Type.FIR_TEXTENCODE {
             TextFIR = biometria.TemplateISOText
         };
         NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria;
         _nitgenSearchApi.AddFIR(biometriaNitgen, (uint)biometria.Id, out informacaoBiometria);
     }
 }
        public void carregaFIRCadastrada()
        {
            //Variável que vai receber o template da digital capturada pelo leitor
            string template;
            //Variável que vai receber o id do usuário, caso ele esteja cadastrado no banco
            uint codpromotor = 0;

            //Variável que vai receber o FIR em texto, do banco de dados
            NBioAPI.Type.FIR_TEXTENCODE templatefromDB = new NBioAPI.Type.FIR_TEXTENCODE();

            //Informações da Fingerprint
            NBioAPI.IndexSearch.FP_INFO[] fpInfo;

            //Solicita conexão com o banco
            SqlConnection conn = new ConnectionFactory().getConnection();

            //Comando sql para buscar cadastro do banco
            String command = "select codpromotor, impressaodigital from promotores";

            //Prepara o comando e a conexão para ser executado no banco.
            SqlCommand query = new SqlCommand(command, conn);

            //Cria um reader para ler os dados encontrados.
            SqlDataReader reader = query.ExecuteReader();

            try
            {
                while (reader.Read())
                {
                    //Pega código do promotor da consulta
                    codpromotor = Convert.ToUInt32(reader["codpromotor"].ToString(), 10);

                    //Pega a string correspondente da digital do banco
                    template = reader["impressaodigital"].ToString();

                    //Guarda na memória a impressao digital pegada do banco
                    templatefromDB.TextFIR = template;

                    //Adiciona as digitais encontradas na memória.
                    m_IndexSearch.AddFIR(templatefromDB, codpromotor, out fpInfo);
                }
            }
            catch (SqlException exc)
            {
                MessageBox.Show("Erro ao carregar dados do banco.\n" + exc);
            }
            finally
            {
                conn.Close();
                reader.Close();
            }
        }
        private dynamic buscar(dynamic dados)
        {
            JObject objJson;


            //string url = "http://localhost:3200/api/biometrico";

            //var json = new WebClient().DownloadString(url);
            // dynamic m = JsonConvert.DeserializeObject( dados );

            uint    ret;
            bool    result;
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.HFIR           hCapturedFIR = new NBioAPI.Type.HFIR();
            NBioAPI.Type.FIR_TEXTENCODE m_textFIR    = new NBioAPI.Type.FIR_TEXTENCODE();
            NBioAPI.Type.FIR_PAYLOAD    myPayload    = new NBioAPI.Type.FIR_PAYLOAD();

            //m_textFIR.TextFIR = Digital.ToString();

            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            m_NBioAPI.Capture(out hCapturedFIR);
            dynamic retorno      = "-";
            int     idx          = -1;
            int     idxEncontrou = -1;

            foreach (dynamic obj in dados)
            {
                idx++;
                m_textFIR.TextFIR = obj.digital;
                ret = m_NBioAPI.VerifyMatch(hCapturedFIR, m_textFIR, out result, myPayload);
                if (result == true)
                {
                    idxEncontrou = idx;
                    break;
                }
            }
            if (idxEncontrou > -1)
            {
                string str1 = "{status: true, msg: 'Digital encontrada', indice: " + idxEncontrou + "}";
                objJson = JObject.Parse(str1);
                return(objJson);
            }
            string str = "{status: false, msg: 'Digital não encontrada'}";

            objJson = JObject.Parse(str);
            return(objJson);



            //return m;
        }
Esempio n. 11
0
        public Boolean ComparaFIR(String Text1, String Text2)
        {
            bool retorno;
            uint ret;

            NBioAPI.Type.FIR_TEXTENCODE texto1 = new NBioAPI.Type.FIR_TEXTENCODE();
            texto1.TextFIR = Text1;
            NBioAPI.Type.FIR_TEXTENCODE texto2 = new NBioAPI.Type.FIR_TEXTENCODE();
            texto2.TextFIR = Text2;
            NBioAPI.Type.FIR_PAYLOAD myPayload = new NBioAPI.Type.FIR_PAYLOAD();
            ret = m_NBioAPI.VerifyMatch(texto1, texto2, out retorno, myPayload);
            return(retorno);
        }
        public string Identificar(string Digital)
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.FIR_TEXTENCODE m_textFIR = new NBioAPI.Type.FIR_TEXTENCODE();
            //NBioAPI.Type.HFIR NewFIR;
            NBioAPI.IndexSearch           m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
            NBioAPI.Type.HFIR             hCapturedFIR;
            NBioAPI.IndexSearch.FP_INFO[] fpInfo;


            NBioAPI.Type.WINDOW_OPTION m_WinOption = new NBioAPI.Type.WINDOW_OPTION();
            m_WinOption.WindowStyle = (uint)NBioAPI.Type.WINDOW_STYLE.NO_WELCOME;

            uint ID = 1;

            m_textFIR.TextFIR = Digital;
            m_IndexSearch.AddFIR(m_textFIR, ID, out fpInfo);

            uint dataCount;

            m_IndexSearch.GetDataCount(out dataCount);

            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            uint ret = m_NBioAPI.Capture(out hCapturedFIR);

            if (ret != NBioAPI.Error.NONE)
            {
                //DisplayErrorMsg(ret);
                m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out m_textFIR, true);
            }

            m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);


            NBioAPI.IndexSearch.FP_INFO         fpInfo2;
            NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
            cbInfo0.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(myCallback);

            // Identify FIR to IndexSearch DB
            ret = m_IndexSearch.IdentifyData(hCapturedFIR, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo2, cbInfo0);
            if (ret != NBioAPI.Error.NONE)
            {
                //DisplayErrorMsg(ret);
                //return fpInfo2.ID.ToString();
                return(m_textFIR.TextFIR);
            }

            return("");
        }
Esempio n. 13
0
        public string CapturarDigitalParaVerificacao()
        {
            NBioAPI.Type.HFIR template = new NBioAPI.Type.HFIR();

            uint retorno = api.Capture(out template);

            if (retorno == NBioAPI.Error.NONE)
            {
                NBioAPI.Type.FIR_TEXTENCODE binario = new NBioAPI.Type.FIR_TEXTENCODE();
                api.GetTextFIRFromHandle(template, out binario, false);
                return(binario.TextFIR);
            }

            throw new Exception("Erro ao capturar a digital.");
        }
        public Task <int> CriarTaskParaIdentificacaoBiometrica(NBioAPI.Type.HFIR template, IEnumerable <Biometria> biometrias)
        {
            var contextoIdentificacao = new ContextoParaIndentificacaoBiometrica(Id, biometrias, template);

            CancellationSource = new CancellationTokenSource();
            var token = CancellationSource.Token;

            return(new Task <int>((parametroState) =>
            {
                try
                {
                    var contexto = parametroState as ContextoParaIndentificacaoBiometrica;
                    if (token.IsCancellationRequested)
                    {
                        return 0;
                    }

                    var nitgenMainApi = new NBioAPI();
                    var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi);
                    nitgenSearchApi.InitEngine();
                    foreach (var biometria in contexto.Biometrias)
                    {
                        var biometriaNitgen = new NBioAPI.Type.FIR_TEXTENCODE {
                            TextFIR = biometria.TemplateISOText
                        };
                        NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria;
                        nitgenSearchApi.AddFIR(biometriaNitgen, (uint)biometria.Id, out informacaoBiometria);
                    }

                    var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
                    cbInfo.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(Callback);
                    NBioAPI.IndexSearch.FP_INFO nitgenBiometria;
                    var relogio = new Stopwatch();
                    relogio.Start();
                    var retorno = nitgenSearchApi.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH,
                                                               out nitgenBiometria, cbInfo);
                    relogio.Stop();
                    Console.WriteLine($"{contexto.Id} - Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}");

                    return (int)nitgenBiometria.ID;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return 0;
                }
            }, contextoIdentificacao, token));
        }
Esempio n. 15
0
        private void Button1_Click(object sender, EventArgs e)
        {
            m_WinOption.WindowStyle = NBioAPI.Type.WINDOW_STYLE.INVISIBLE;
            retorno_para_exportar   = new NBioAPI.Type.HFIR();
            m_hNewFIR = new NBioAPI.Type.HFIR();
            m_NBioAPI.OpenDevice(255);
            uint ret = m_NBioAPI.Capture(NBioAPI.Type.FIR_PURPOSE.VERIFY, out m_hNewFIR, -1, retorno_para_exportar, m_WinOption);

            m_NBioAPI.GetTextFIRFromHandle(m_hNewFIR, out m_textFIR, true);
            Console.WriteLine("texto com m_new1 " + m_textFIR.TextFIR);
            m_textFIR = null;
            m_NBioAPI.GetTextFIRFromHandle(retorno_para_exportar, out m_textFIR, true);
            Console.WriteLine("text com retorno com retorno_para_exportar " + m_textFIR.TextFIR);
            bmp          = utils.Conversor(m_textFIR);
            ptb_fp.Image = bmp;
        }
        public string Capturar()
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.HFIR           hCapturedFIR = new NBioAPI.Type.HFIR();
            NBioAPI.Type.FIR_TEXTENCODE texto        = new NBioAPI.Type.FIR_TEXTENCODE();
            // Get FIR data

            m_NBioAPI.OpenDevice(255);

            m_NBioAPI.Capture(out hCapturedFIR);
            m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out texto, true);


            return(texto.TextFIR);
        }
Esempio n. 17
0
        public string Capturar()
        {
            NBioAPI.Type.HFIR           hCapturedFIR      = new NBioAPI.Type.HFIR();
            NBioAPI.Type.HFIR           hCapturedFIRaudit = new NBioAPI.Type.HFIR();
            NBioAPI.Type.FIR_TEXTENCODE texto             = new NBioAPI.Type.FIR_TEXTENCODE();
            //Get FIR data
            uint device = m_NBioAPI.OpenDevice(255);

            if (device != NBioAPI.Error.NONE)
            {
                return(null);
            }
            m_NBioAPI.Capture(NBioAPI.Type.FIR_PURPOSE.VERIFY, out hCapturedFIR, -1, hCapturedFIRaudit, null);
            m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out texto, true);
            m_NBioAPI.CloseDevice(255);
            return(texto.TextFIR);
        }
Esempio n. 18
0
        public bool VerificarDigitais(String digitalCapturada, String digitaisSalvas)
        {
            bool resultado = false;

            NBioAPI.Type.FIR_TEXTENCODE salvas    = ToFIR_TextEncode(digitaisSalvas);
            NBioAPI.Type.FIR_TEXTENCODE capturada = ToFIR_TextEncode(digitalCapturada);

            var  payload = new NBioAPI.Type.FIR_PAYLOAD();
            uint retorno = api.VerifyMatch(capturada, salvas, out resultado, payload);

            if (retorno == NBioAPI.Error.NONE)
            {
                return(resultado);
            }

            throw new Exception("Erro ao verificar digital: " + retorno);
        }
Esempio n. 19
0
        private void Button1_Click_1(object sender, EventArgs e)
        {
            String fir = richTextBox1.Text;

            //System.Windows.Forms.MessageBox.Show(fir);

            NBioAPI.Type.FIR_TEXTENCODE m_textFIR2 = new NBioAPI.Type.FIR_TEXTENCODE();
            m_textFIR2.TextFIR = fir;


            try
            {
                ptb_fp.Image = utils.Conversor(m_textFIR2);
            }
            catch
            {
                System.Windows.Forms.MessageBox.Show("não é possível converter o tamplate inserido");
            }
        }
Esempio n. 20
0
        public void Capture(short Dispositivo, PictureBox Pct, Label labelImgQuality, Label LblFinalizacaoSelecionado, TipoDedo Dedo, TipoMao Mao, out NBioAPI.Type.FIR MyFir, out NBioAPI.Type.FIR_TEXTENCODE textFIR, bool Infinito)
        {
            LabelQualidadeSelecionado   = labelImgQuality;
            LabelFinalizacaoSelecionado = LblFinalizacaoSelecionado;

            m_WinOption.WindowStyle            = NBioAPI.Type.WINDOW_STYLE.INVISIBLE;
            m_WinOption.Option2.FPForeColor[0] = Convert.ToByte("00", 16);
            m_WinOption.Option2.FPForeColor[1] = Convert.ToByte("00", 16);
            m_WinOption.Option2.FPForeColor[2] = Convert.ToByte("00", 16);
            m_WinOption.Option2.FPBackColor[0] = Convert.ToByte("FF", 16);
            m_WinOption.Option2.FPBackColor[1] = Convert.ToByte("FF", 16);
            m_WinOption.Option2.FPBackColor[2] = Convert.ToByte("FF", 16);


            m_WinOption.FingerWnd = (uint)Pct.Handle.ToInt32();


            // Callback funtion
            m_WinOption.CaptureCallBackInfo = new NBioAPI.Type.CALLBACK_INFO_0();
            m_WinOption.CaptureCallBackInfo.CallBackFunction = new NBioAPI.Type.WINDOW_CALLBACK_0(MyCaptureCallback);
            m_WinOption.FinishCallBackInfo = new NBioAPI.Type.CALLBACK_INFO_1();
            m_WinOption.FinishCallBackInfo.CallBackFunction = new NBioAPI.Type.WINDOW_CALLBACK_1(MyFinishCallback);


            // Select finger for enrollment
            if (Mao == Biometria.TipoMao.Direita)
            {
                m_WinOption.Option2.DisableFingerForEnroll[0] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[1] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[2] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[3] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[4] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[5] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[6] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[7] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[8] = (byte)NBioAPI.Type.TRUE;
                m_WinOption.Option2.DisableFingerForEnroll[9] = (byte)NBioAPI.Type.TRUE;

                switch (Dedo)
                {
                case Biometria.TipoDedo.Anelar:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[3] = NBioAPI.Type.FALSE;
                    break;
                }

                case Biometria.TipoDedo.Indicador:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[1] = NBioAPI.Type.FALSE;
                    break;
                }

                case Biometria.TipoDedo.Médio:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[2] = (byte)NBioAPI.Type.FALSE;
                    break;
                }

                case Biometria.TipoDedo.Mínimo:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[4] = NBioAPI.Type.FALSE;
                    break;
                }

                case Biometria.TipoDedo.Polegar:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[0] = NBioAPI.Type.FALSE;
                    break;
                }
                }
            }
            else
            {
                switch (Dedo)
                {
                case Biometria.TipoDedo.Anelar:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[8] = NBioAPI.Type.FALSE;
                    break;
                }

                case Biometria.TipoDedo.Indicador:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[6] = NBioAPI.Type.FALSE;
                    break;
                }

                case Biometria.TipoDedo.Médio:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[7] = (byte)NBioAPI.Type.FALSE;
                    break;
                }

                case Biometria.TipoDedo.Mínimo:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[9] = NBioAPI.Type.FALSE;
                    break;
                }

                case Biometria.TipoDedo.Polegar:
                {
                    m_WinOption.Option2.DisableFingerForEnroll[5] = NBioAPI.Type.FALSE;
                    break;
                }
                }
            }

            NBioAPI.Type.HFIR hCapturedFIR;
            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            if (Infinito)
            {
                m_NBioAPI.Capture(out hCapturedFIR, NBioAPI.Type.TIMEOUT.INFINITE, m_WinOption);
            }
            else
            {
                m_NBioAPI.Capture(out hCapturedFIR, NBioAPI.Type.TIMEOUT.DEFAULT, m_WinOption);
            }
            try
            {
                m_NBioAPI.GetFIRFromHandle(hCapturedFIR, out MyFir);
                m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out textFIR, true);
                m_NBioAPI.CloseDevice(Dispositivo);
            }
            catch (Exception ex)
            {
                textFIR = null;
                MyFir   = null;
            }
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
            //code to capture the fingerprint data and then verify with the database record.
            //  call this method to set Window_option
            // m_BioAPI.SetWindowStyle(pbVerify.Handle.ToInt32(),true,false,false,false );
            SetInitValue(pbVerify.Handle.ToInt32());
            NBioAPI.Type.HFIR m_FIR;
            NBioAPI.Type.FIR_TEXTENCODE m1_textFIR;
            //validation for txtName textbox
            if (txtUserId.Text == "")
            {
                MessageBox.Show("Please Enter User Id to verify ", "Verifcation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            //capture the fingerprint and then store the result in m_FIR and return ret as output
            uint ret = m_BioAPI.Capture(out m_FIR, NBioAPI.Type.TIMEOUT.DEFAULT, m_WinOption);
            if (ret == BioAPI.Error.NONE) //if no errors then extract the values from the DB and then match
            {

                m_BioAPI.GetTextFIRFromHandle(m_FIR, out m1_textFIR, true);
                lblMessage.Text = "Capture Successful !!";
                try
                {
                    //create a Sql Command
                    if (lblEType.Text.Equals("Doctor"))
                    {
                        SqlCommand cmd = new SqlCommand("Select * from doctor where DocId ='" + txtUserId.Text + "'");
                        cmd.Connection = con; //initilize the cmd object with the connection made
                        con.Open();//opens the connection
                        SqlDataReader reader = cmd.ExecuteReader(); //execute the command and then store the result in the reader object
                        string userID = "";
                        string Fpdata = "";
                        while (reader.Read())
                        {
                            userID = reader["DocId"].ToString();
                            Fpdata = reader["fingerprint"].ToString();

                        }
                        con.Close();//close the connection
                        //create a FIR_TextEncode object and then store the encoded image data in it
                        NBioAPI.Type.FIR_TEXTENCODE textFIR = new NBioAPI.Type.FIR_TEXTENCODE();
                        textFIR.TextFIR = Fpdata;
                        bool result;
                        //create a payload
                        NBioAPI.Type.FIR_PAYLOAD payload = new NBioAPI.Type.FIR_PAYLOAD();
                        m_BioAPI.VerifyMatch(textFIR, m1_textFIR, out result, payload); //verify
                        if (result) //if result is true then verified success else failed
                        {
                            DoctorMainForm bl = new DoctorMainForm();
                            bl.Show();
                            this.Close();

                        }
                        else
                            MessageBox.Show("Verification Failed !!! Try Again ");
                        //pbVerify.Image = null;

                        cmd.Dispose();
                    }

                    else if (lblEType.Text.Equals("Employee"))
                    {
                        SqlCommand cmd = new SqlCommand("Select * from Employee where EmpId ='" + txtUserId.Text + "'");
                        cmd.Connection = con; //initilize the cmd object with the connection made
                        con.Open();//opens the connection
                        SqlDataReader reader = cmd.ExecuteReader(); //execute the command and then store the result in the reader object
                        string userID = "";
                        string Fpdata = "";
                        while (reader.Read())
                        {
                            userID = reader["EmpId"].ToString();
                            Fpdata = reader["fingerprint"].ToString();

                        }
                        con.Close();//close the connection
                        //create a FIR_TextEncode object and then store the encoded image data in it
                        NBioAPI.Type.FIR_TEXTENCODE textFIR = new NBioAPI.Type.FIR_TEXTENCODE();
                        textFIR.TextFIR = Fpdata;
                        bool result;
                        //create a payload
                        NBioAPI.Type.FIR_PAYLOAD payload = new NBioAPI.Type.FIR_PAYLOAD();
                        m_BioAPI.VerifyMatch(textFIR, m1_textFIR, out result, payload); //verify
                        if (result) //if result is true then verified success else failed
                        {
                            EmployeeMainForm bl = new EmployeeMainForm();
                            bl.Show();
                            this.Close();
                        }
                        else
                            MessageBox.Show("Verification Failed !!! Try Again ");
                        //pbVerify.Image = null;

                        cmd.Dispose();
                    }
                    else
                    {
                        SqlCommand cmd = new SqlCommand("Select * from Administrator where AdminId ='" + txtUserId.Text + "'");
                        cmd.Connection = con; //initilize the cmd object with the connection made
                        con.Open();//opens the connection
                        SqlDataReader reader = cmd.ExecuteReader(); //execute the command and then store the result in the reader object
                        string userID = "";
                        string Fpdata = "";
                        while (reader.Read())
                        {
                            userID = reader["AdminId"].ToString();
                            Fpdata = reader["fingerprint"].ToString();

                        }
                        con.Close();//close the connection
                        //create a FIR_TextEncode object and then store the encoded image data in it
                        NBioAPI.Type.FIR_TEXTENCODE textFIR = new NBioAPI.Type.FIR_TEXTENCODE();
                        textFIR.TextFIR = Fpdata;
                        bool result;
                        //create a payload
                        NBioAPI.Type.FIR_PAYLOAD payload = new NBioAPI.Type.FIR_PAYLOAD();
                        m_BioAPI.VerifyMatch(textFIR, m1_textFIR, out result, payload); //verify
                        if (result) //if result is true then verified success else failed
                        {
                            AdminMainForm bl = new AdminMainForm();
                            bl.Show();
                            this.Close();
                        }
                        else
                            MessageBox.Show("Verification Failed !!! Try Again ");
                        //pbVerify.Image = null;

                        cmd.Dispose();
                    }

                }

                catch (Exception ex)
                {
                    lblMessage.Text = "Database Exceptiom occured..";
                }
            }
            else
            {
                MessageBox.Show("Capture process Failed !!!");
            }
        }
Esempio n. 22
0
        private void TimeCartao_Tick(object sender, EventArgs e)
        {
            string MsgAdicional = "";

            if (SerialCartao.IsOpen == false)
            {
                SerialCartao.Open();
            }

            LblMsg.Text = "Passe o cartão de identificação CId_S no leitor";
            this.Refresh();

            if (SerialCartao.BytesToRead > 0)
            {
                TimeCartao.Enabled = false;
                string NumeroCartao = SerialCartao.ReadExisting().ToString().Substring(3, 5);
                SerialCartao.Close(); //Fecha a porta para não receber mais nada.
                CPonto.CPontoClient  oProxy = new CPonto.CPontoClient();
                CPonto.CARTAO        oCartao;
                CPonto.USUARIO       oUsuario = null;
                CPonto.CARTAOUSUARIO oCartaoUsuario;
                int CodigoUsuario;
                oCartao = oProxy.SelecionaCartao(out oCartaoUsuario, NumeroCartao);
                bool PossuiAcesso = false;
                if (oCartao == null)
                {
                    nTentativas += 1;
                    if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso)
                    {
                        AcionaSirene();
                    }
                    LblMsg.Text = "Cartão de identificação CId_S inválido ou não cadastrado no sistema. Entrar em contato com o departamento de Segurança Patrimonial.";
                }
                else
                {
                    if ((bool)oCartao.CrBloqueado)
                    {
                        if (MatTentou != oCartaoUsuario.CSCodigoUsuario)
                        {
                            nTentativas = 1;
                        }
                        else
                        {
                            nTentativas += 1;
                        }
                        if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso)
                        {
                            AcionaSirene();
                        }
                        CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario);
                        LblMsg.Text = "O cartão de identificação do usuário foi bloqueado pelo motivo: " + oCartao.CrMotivoBloqueio + ".";
                    }
                    else
                    {
                        try
                        {
                            PossuiAcesso = oProxy.PossuiPermissaoPonto(oCartaoUsuario.CSCodigoUsuario, CodigoPonto);
                        }
                        catch (Exception ex)
                        {
                            PossuiAcesso = false;
                            MsgAdicional = ex.Message;
                        }

                        if (PossuiAcesso)
                        {
                            if (oPonto.PoBiometria)
                            {
                                LblMsg.Text = "Coloque o dedo cadastrado no leitor biométrico da impressão digital.";
                                this.Refresh();
                                //Implementar o acesso biométrico
                                CPonto.HASHDIGITAL[] oListaHash = oProxy.SelecionaHashUsuario(oCartaoUsuario.CSCodigoUsuario);
                                m_NBioAPI = new NBioAPI();
                                uint ret;
                                oIndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
                                ret          = oIndexSearch.InitEngine();
                                if (ret != NBioAPI.Error.NONE)
                                {
                                    MsgErro(ret);
                                }
                                oIndexSearch.ClearDB();
                                foreach (CPonto.HASHDIGITAL oHash in oListaHash)
                                {
                                    NBioAPI.Type.FIR_TEXTENCODE oFir = new NBioAPI.Type.FIR_TEXTENCODE();
                                    oFir.TextFIR = oHash.HaCredencialBiometricaTextual;
                                    NBioAPI.IndexSearch.FP_INFO[] oInfo;
                                    oIndexSearch.AddFIR(oFir, uint.Parse(oHash.HaCodigo.ToString()), out oInfo);
                                }

                                if (AcessoBiometrico(out CodigoUsuario, oProxy, false))
                                {
                                    PossuiAcesso = true;
                                }
                                else
                                {
                                    PossuiAcesso = false;
                                }
                            }
                            if (oPonto.PoSenha)
                            {
                                //Acesso via senha de rede.

                                FrmAutenticaRede oFrm = new FrmAutenticaRede();
                                oFrm.ShowDialog();
                                if (oFrm.Autenticado)
                                {
                                    oUsuario = oFrm.Usuario;
                                    if (oUsuario.USCODIGO != oCartaoUsuario.CSCodigoUsuario)
                                    {
                                        PossuiAcesso = false;
                                        RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oUsuario.USCODIGO, DateTime.Parse(LblDataHora.Text), true);
                                        if (MatTentou != oUsuario.USCODIGO)
                                        {
                                            nTentativas = 1;
                                        }
                                        else
                                        {
                                            nTentativas += 1;
                                        }
                                        if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso)
                                        {
                                            AcionaSirene();
                                        }
                                        MatTentou = oUsuario.USCODIGO;
                                        CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario);
                                        LblMsg.Text = "O usuário que se autenticou é diferente do usuário a qual pertence o crachá.";
                                    }
                                }
                                else
                                {
                                    PossuiAcesso = false;
                                }
                            }

                            if (oUsuario == null)
                            {
                                oUsuario = oProxy.SelecionaUsuario(oCartaoUsuario.CSCodigoUsuario);
                            }

                            NumeroDia += 1;
                            if (VerificaEquipamentos(oProxy, oUsuario) == false)
                            {
                                CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario);
                                RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oCartaoUsuario.CSCodigoUsuario, DateTime.Now, true);
                                if (MatTentou != oCartaoUsuario.CSCodigoUsuario)
                                {
                                    nTentativas = 1;
                                }
                                else
                                {
                                    nTentativas += 1;
                                }
                                if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso)
                                {
                                    AcionaSirene();
                                }
                                MatTentou      = oCartaoUsuario.CSCodigoUsuario;
                                timer1.Enabled = true;
                                return;
                            }
                            else
                            {
                                PossuiAcesso = true;
                            }

                            if (PossuiAcesso)
                            {
                                //Registrar que o acesso foi autorizado e acionar a porta elétrica para liberação
                                LblDataHora.Text    = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                                PctSemSinal.Visible = false;
                                PctVerde.Visible    = true;
                                RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oCartaoUsuario.CSCodigoUsuario, DateTime.Parse(LblDataHora.Text), false);
                                CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario);
                                AcionaTranca();
                            }
                            else
                            {
                                CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario);
                                RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oCartaoUsuario.CSCodigoUsuario, DateTime.Parse(LblDataHora.Text), true);
                                if (MatTentou != oCartaoUsuario.CSCodigoUsuario)
                                {
                                    nTentativas = 1;
                                }
                                else
                                {
                                    nTentativas += 1;
                                }
                                if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso)
                                {
                                    AcionaSirene();
                                }
                                MatTentou   = oCartaoUsuario.CSCodigoUsuario;
                                LblMsg.Text = "O Acesso não foi autorizado.";
                            }
                        }
                        else
                        {
                            CarregaDadosUsuario(oCartaoUsuario.CSCodigoUsuario, oProxy, out oUsuario);
                            RegistrarAcesso(oProxy, oCartaoUsuario.CSCODIGO, oCartaoUsuario.CSCodigoUsuario, DateTime.Now, true);
                            if (MatTentou != oCartaoUsuario.CSCodigoUsuario)
                            {
                                nTentativas = 1;
                            }
                            else
                            {
                                nTentativas += 1;
                            }

                            if (LimiteTentativaAcesso > 0 && nTentativas > LimiteTentativaAcesso)
                            {
                                AcionaSirene();
                            }
                            MatTentou   = oCartaoUsuario.CSCodigoUsuario;
                            LblMsg.Text = "O Usuário não possui acesso ao ponto de controle PCAP_S. Entrar em contato com a segurança patrimonial." + MsgAdicional + ".";
                        }
                    }
                }
                oProxy.Close();

                //Libera o timer que limpa os dados e habilita novamente a leitura ou entaõ, libera o timer do cartao;
                timer1.Enabled = true;
                if (PossuiAcesso)
                {
                    PctVerde.Visible    = true;
                    PctVermelho.Visible = false;
                    PctAmarelo.Visible  = false;
                    PctSemSinal.Visible = false;
                }
                else
                {
                    PctVerde.Visible    = false;
                    PctVermelho.Visible = true;
                    PctAmarelo.Visible  = false;
                    PctSemSinal.Visible = false;
                }
            }
        }
Esempio n. 23
0
        private void FrmPrincipal_Load(object sender, EventArgs e)
        {
            Tipo = ACESSO.PONTOCONTROLE.Classes.Registro.Tipo();
            if (Tipo == null)
            {
                FrmConfigura oFrm = new FrmConfigura();
                oFrm.ShowDialog();
            }
            else
            {
                if (MessageBox.Show("Deseja configurar a estação? ", ProductName, MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                {
                    FrmConfigura oFrm = new FrmConfigura();
                    oFrm.ShowDialog();
                }
            }
            try
            {
                PortaSirene = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSirene();
                PortaSerial = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSerial();
            }
            catch (Exception ex)
            {
                FrmConfigura oFrm = new FrmConfigura();
                oFrm.ShowDialog();
                PortaTranca = ACESSO.PONTOCONTROLE.Classes.Registro.PortaTranca();
                PortaSirene = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSirene();
                PortaSerial = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSerial();
            }

            CodigoPonto = ACESSO.PONTOCONTROLE.Classes.Registro.CodigoPonto();
            Tipo        = ACESSO.PONTOCONTROLE.Classes.Registro.Tipo();
            CPonto.CPontoClient oProxy = new CPonto.CPontoClient();
            oPonto = oProxy.SelecionaPKPontoControle(CodigoPonto, Tipo);
            if (Tipo == "E")
            {
                oListaEquipamentoPonto = oProxy.ListaEquipamentoPonto(CodigoPonto);
            }

            if (oListaEquipamentoPonto == null)
            {
                GbxEquipamento.Visible = false;
            }
            else
            {
                if (oListaEquipamentoPonto.Count() == 0)
                {
                    GbxEquipamento.Visible = false;
                }
                else
                {
                    int contador;


                    //PERCORRE OS EQUIPAMENTOS, VERIFICANDO SE TEM OBRIGATÓRIOS E RANDÔMICOS.
                    for (contador = 0; contador < oListaEquipamentoPonto.Count(); contador++)
                    {
                        if (oListaEquipamentoPonto[contador].EPObrigatorio != null)
                        {
                            if ((bool)oListaEquipamentoPonto[contador].EPObrigatorio)
                            {
                                ChkEquipObrigatorio.Checked = true;
                            }
                        }
                        if (oPonto.PoQtdVerificaEquip != null)
                        {
                            if (oPonto.PoQtdVerificaEquip > 0)
                            {
                                if ((bool)oListaEquipamentoPonto[contador].EPObrigatorio == null)
                                {
                                    ChkEquipRandomico.Checked = true;
                                }
                                else
                                {
                                    if ((bool)oListaEquipamentoPonto[contador].EPObrigatorio == false)
                                    {
                                        ChkEquipRandomico.Checked = true;
                                    }
                                }
                            }
                        }
                    }
                    //FIM DA VERIFICAÇÃO SE O PONTO DE CONTROLE POSSUI EQUIPAMENTOS ASSOCIADOS

                    if (ChkEquipRandomico.Checked)
                    {
                        OrdemVerificaRandomico = ListaRandomizada((int)oPonto.PoQtdMediaPessoas, (int)oPonto.PoQtdVerificaEquip);
                    }
                }
            }

            ChkPoBiometria.Checked  = oPonto.PoBiometria;
            ChkPoCartaoRFID.Checked = oPonto.PoCartaoRFID;
            ChkPoSenha.Checked      = oPonto.PoSenha;
            LblIdentificacao.Text   = oPonto.PoNome;
            if (oPonto.PoDisparaAlarme)
            {
                LimiteTentativaAcesso = (int)oPonto.PoTentativaIndevidaDisparaAlarme;
            }
            BtnLiberacaoForcada.Enabled = oPonto.PoPermiteLiberacaoForcada;

            SerialCartao.PortName = PortaSerial;

            if (ChkPoCartaoRFID.Checked)
            {
                //Abre a porta serial para receber o código do Cartão.
                SerialCartao.PortName = PortaSerial;
                SerialCartao.Close();
                try
                {
                    SerialCartao.Open();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Confirgure a porta serial do leitor de cartão (" + ex.Message + ").");
                    FrmConfigura oFrm = new FrmConfigura();
                    oFrm.ShowDialog();

                    PortaSerial           = ACESSO.PONTOCONTROLE.Classes.Registro.PortaSerial();
                    SerialCartao.PortName = PortaSerial;
                    SerialCartao.Open();
                }
                SerialCartao.DiscardOutBuffer();
                SerialCartao.DiscardInBuffer();
                TimeCartao.Enabled = true;
            }
            else
            {
                m_NBioAPI = new NBioAPI();
                uint ret;
                oIndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
                ret          = oIndexSearch.InitEngine();
                if (ret != NBioAPI.Error.NONE)
                {
                    MsgErro(ret);
                }
                oIndexSearch.ClearDB();
                CPonto.HASHDIGITAL[] Lista = oProxy.ListaHash();
                foreach (CPonto.HASHDIGITAL oHash in Lista)
                {
                    NBioAPI.Type.FIR_TEXTENCODE oFir = new NBioAPI.Type.FIR_TEXTENCODE();
                    oFir.TextFIR = oHash.HaCredencialBiometricaTextual;
                    NBioAPI.IndexSearch.FP_INFO[] oInfo;
                    oIndexSearch.AddFIR(oFir, uint.Parse(oHash.HaCodigoUsuario.ToString()), out oInfo);
                }
                TimeSemCartao.Enabled = true;
            }
            oProxy.Close();
        }
        public void carregaFIRCadastrada()
        {
            //Variável que vai receber o template da digital capturada pelo leitor
            string template;
            //Variável que vai receber o id do usuário, caso ele esteja cadastrado no banco
            uint codpromotor = 0;

            //Variável que vai receber o FIR em texto, do banco de dados
            NBioAPI.Type.FIR_TEXTENCODE templatefromDB = new NBioAPI.Type.FIR_TEXTENCODE();

            //Informações da Fingerprint
            NBioAPI.IndexSearch.FP_INFO[] fpInfo;

            //Solicita conexão com o banco
            SqlConnection conn = new ConnectionFactory().getConnection();

            //Comando sql para buscar cadastro do banco
            String command = "select codpromotor, impressaodigital from promotores";

            //Prepara o comando e a conexão para ser executado no banco.
            SqlCommand query = new SqlCommand(command, conn);

            //Cria um reader para ler os dados encontrados.
            SqlDataReader reader = query.ExecuteReader();

            try
            {
                while (reader.Read())
                {

                    //Pega código do promotor da consulta
                    codpromotor = Convert.ToUInt32(reader["codpromotor"].ToString(), 10);

                    //Pega a string correspondente da digital do banco
                    template = reader["impressaodigital"].ToString();

                    //Guarda na memória a impressao digital pegada do banco
                    templatefromDB.TextFIR = template;

                    //Adiciona as digitais encontradas na memória.
                    m_IndexSearch.AddFIR(templatefromDB, codpromotor, out fpInfo);
                }
            }
            catch (SqlException exc)
            {
                MessageBox.Show("Erro ao carregar dados do banco.\n" + exc);
            }
            finally
            {
                conn.Close();
                reader.Close();
            }
        }
Esempio n. 25
0
 //recebe string retorna textencode
 public NBioAPI.Type.FIR_TEXTENCODE conertstringtoTEXTENCODE(string digital)
 {
     NBioAPI.Type.FIR_TEXTENCODE textencode = new NBioAPI.Type.FIR_TEXTENCODE();
     textencode.TextFIR = digital;
     return(textencode);
 }
Esempio n. 26
0
 private NBioAPI.Type.FIR_TEXTENCODE ToFIR_TextEncode(String templateString)
 {
     NBioAPI.Type.FIR_TEXTENCODE fir = new NBioAPI.Type.FIR_TEXTENCODE();
     fir.TextFIR = templateString;
     return(fir);
 }