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"); } }
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(""); } }
//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); }
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); }
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); }
//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); }
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; }
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(""); }
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)); }
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); }
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); }
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); }
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"); } }
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 !!!"); } }
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; } } }
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(); } }
//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); }
private NBioAPI.Type.FIR_TEXTENCODE ToFIR_TextEncode(String templateString) { NBioAPI.Type.FIR_TEXTENCODE fir = new NBioAPI.Type.FIR_TEXTENCODE(); fir.TextFIR = templateString; return(fir); }