public SdkNitgen() { _api = new NBioAPI(); _apiConversor = new NBioAPI.Export(_api); _apiBusca = new NBioAPI.IndexSearch(_api); _apiBusca.InitEngine(); }
private DigitalTask Create(NBioAPI.Type.HFIR template, IEnumerable <Biometria> biometrias) { var nitgenMainApi = new NBioAPI(); var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi); nitgenSearchApi.InitEngine(); var nitgenConvertApi = new NBioAPI.Export(nitgenMainApi); var contextoIdentificacao = BiometriaIndentificacaoContexto.Novo(nitgenSearchApi, nitgenConvertApi); contextoIdentificacao.TemplateLido = template; var cancellationToken = new CancellationTokenSource(); var token = cancellationToken.Token; foreach (var biometria in biometrias) { NBioAPI.Type.HFIR handle; NBioAPI.IndexSearch.FP_INFO[] nitgenBiometria; nitgenConvertApi.FDxToNBioBSPEx(biometria.TemplateISO, (uint)biometria.TemplateISO.Length, NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO, NBioAPI.Type.FIR_PURPOSE.ENROLL_FOR_IDENTIFICATION_ONLY, out handle); nitgenSearchApi.AddFIR(handle, (uint)biometria.Id, out nitgenBiometria); } var task = new Task <int>((parametroState) => { var contexto = parametroState as BiometriaIndentificacaoContexto; Console.WriteLine($"{contexto.Id} - Iniciado "); if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } // Faz o Index Search var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0(); NBioAPI.IndexSearch.FP_INFO nitgenBiometria; var relogio = new Stopwatch(); Console.WriteLine($"{contexto.Id} - Localizando biometria..."); 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}"); if (token.IsCancellationRequested) { token.ThrowIfCancellationRequested(); } Console.WriteLine($"{contexto.Id} - Finalizado "); return((int)nitgenBiometria.ID); }, contextoIdentificacao, token); return(new DigitalTask(contextoIdentificacao.Id, task, cancellationToken)); }
public IdentificarBiometriaHandler() { _repositorio = new DigitaisRepositorio(); _mecanismosBusca = new List <NitgenBiometriaTask>(); var nitgenMainApi = new NBioAPI(); _mecanismoConfirmacao = new NBioAPI.IndexSearch(nitgenMainApi); _mecanismoConfirmacao.InitEngine(); _dataUltimaBusca = DateTime.Now; }
public ContextoParaIndentificacaoBiometrica(Guid id, NBioAPI mecanismoBusca, NBioAPI.IndexSearch mecanismoConfirmacao, NBioAPI.Export conversor, NBioAPI.Type.HFIR templateLido, IEnumerable <Biometria> biometrias) { Id = id; MecanismoBusca = mecanismoBusca; TemplateLido = templateLido; Biometrias = biometrias; MecanismoConfirmacao = mecanismoConfirmacao; Conversor = conversor; }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { filldrop(); } m_NBioAPI = new NBioAPI(); m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); //con.Open(); table_creater(); }
private static void CarregarBiometriasParaNitgen(NBioAPI nitgenMainApi, NBioAPI.IndexSearch nitgenSearchApi, 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 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 static NitgenBiometriaTask Novo(IEnumerable <Biometria> biometrias) { var nitgenMainApi = new NBioAPI(); var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi); var retorno = nitgenSearchApi.InitEngine(); if (retorno != NBioAPI.Error.NONE) { throw new Exception($"Erro inicializando mecanismo de busca. Erro: {retorno} - {NBioAPI.Error.GetErrorDescription(retorno)}"); } CarregarBiometriasParaNitgen(nitgenMainApi, nitgenSearchApi, biometrias); return(new NitgenBiometriaTask(Guid.NewGuid(), nitgenSearchApi)); }
public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // // Create NBioBSP object m_NBioAPI = new NBioAPI(); m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); }
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)); }
public interfaceBiometria() { //Inicializa leitor e ja pega uma conexão com o banco m_NBioAPI = new NBioAPI(); m_OpenedDeviceID = NBioAPI.Type.DEVICE_ID.NONE; m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); defineDispositivo(); //Inicia o sistema de busca de digitais cadastradas. m_IndexSearch.InitEngine(); //Inicializa o módulo para captura da Digital //Inicializa a variável da opção da janela, e define a janela de captura como invisivel m_WinOption = new NBioAPI.Type.WINDOW_OPTION(); m_WinOption.WindowStyle = NBioAPI.Type.WINDOW_STYLE.INVISIBLE; }
public CadastraDigitalForm() { InitializeComponent(); //Inicializa leitor e ja pega uma conexão com o banco m_NBioAPI = new NBioAPI(); m_OpenedDeviceID = NBioAPI.Type.DEVICE_ID.NONE; m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); SqlConnection conn = new ConnectionFactory().getConnection(); //Inicializa o módulo para captura da Digital defineDispositivo(); fechaDispositivo(); abreDispositivo(); cadastraDigital(); }
public Byte[] Capturar(int id) { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.INIT_INFO_0 initInfo0; uint ret = m_NBioAPI.GetInitInfo(out initInfo0); Console.WriteLine("passeiaqui"); if (ret == NBioAPI.Error.NONE) { initInfo0.EnrollImageQuality = Convert.ToUInt32(50); initInfo0.VerifyImageQuality = Convert.ToUInt32(30); initInfo0.DefaultTimeout = Convert.ToUInt32(10000); initInfo0.SecurityLevel = (int)NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL - 1; } NBioAPI.IndexSearch m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); NBioAPI.Type.HFIR hCapturedFIR; NBioAPI.Type.HFIR AuditData = new NBioAPI.Type.HFIR(); NBioAPI.Type.FIR_TEXTENCODE texto; // Get FIR data m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); m_NBioAPI.Capture(NBioAPI.Type.FIR_PURPOSE.DENTIFY, out hCapturedFIR, -1, AuditData, null); //Console.WriteLine(Encoding.Default.GetString(getfingerImage(AuditData))); try { if (hCapturedFIR != null) { return(getfingerImage(AuditData)); } return(null); } catch (Exception ex) { throw new Exception("ERRO:... " + ex.Message); } }
public string Enroll(int id) { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.FIR_TEXTENCODE m_textFIR; NBioAPI.Type.HFIR NewFIR; NBioAPI.IndexSearch m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); NBioAPI.Type.WINDOW_OPTION m_WinOption = new NBioAPI.Type.WINDOW_OPTION(); m_WinOption.WindowStyle = (uint)NBioAPI.Type.WINDOW_STYLE.NO_WELCOME; string Retorno = ""; m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); uint ret = m_NBioAPI.Enroll(out NewFIR, null); //uint ret = m_NBioAPI.Enroll(null, out NewFIR, null, NBioAPI.Type.TIMEOUT.DEFAULT, null, m_WinOption); if (ret != NBioAPI.Error.NONE) { m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO); } 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(); } } return(Retorno); }
public string Capturar(int id) { NBioAPI m_NBioAPI = new NBioAPI(); NBioAPI.Type.INIT_INFO_0 initInfo0; uint ret = m_NBioAPI.GetInitInfo(out initInfo0); if (ret == NBioAPI.Error.NONE) { initInfo0.EnrollImageQuality = Convert.ToUInt32(50); initInfo0.VerifyImageQuality = Convert.ToUInt32(30); initInfo0.DefaultTimeout = Convert.ToUInt32(10000); initInfo0.SecurityLevel = (int)NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL - 1; } NBioAPI.IndexSearch m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI); NBioAPI.Type.HFIR hCapturedFIR; NBioAPI.Type.FIR_TEXTENCODE texto; // Get FIR data m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO); m_NBioAPI.Capture(out hCapturedFIR); try { if (hCapturedFIR != null) { m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out texto, true); return(texto.TextFIR); } return(null); } catch (Exception ex) { throw new Exception("ERRO:... " + ex.Message); } }
public Task <int> CriarTaskParaIdentificacaoBiometrica(NBioAPI.Type.HFIR template, NBioAPI.IndexSearch mecanismoConfirmacao) { var contextoIdentificacao = new ContextoParaIndentificacaoBiometrica(Id, MecanismoBusca, mecanismoConfirmacao, Conversor, template, Biometrias); CancellationSource = new CancellationTokenSource(); var token = CancellationSource.Token; return(new Task <int>((parametroState) => { var contexto = parametroState as ContextoParaIndentificacaoBiometrica; if (token.IsCancellationRequested) { return 0; } var encontrou = false; var relogio = new Stopwatch(); relogio.Start(); foreach (var biometria in contexto.Biometrias) { if (token.IsCancellationRequested) { relogio.Stop(); Console.WriteLine($"{contexto.Id} - cancelado pois encontrado em outra thread {relogio.Elapsed.TotalSeconds}"); return 0; } var payload = new NBioAPI.Type.FIR_PAYLOAD(); NBioAPI.Type.HFIR handler; contexto.Conversor.FDxToNBioBSPEx(biometria.TemplateISO, (uint)biometria.TemplateISO.Length, NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO, NBioAPI.Type.FIR_PURPOSE.ENROLL_FOR_IDENTIFICATION_ONLY, out handler); var retorno = contexto.MecanismoBusca.VerifyMatch(contexto.TemplateLido, handler, out encontrou, payload); if (encontrou) { contexto.MecanismoConfirmacao.InitEngine(); NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria; var ret = contexto.MecanismoConfirmacao.AddFIR(handler, (uint)biometria.Id, out informacaoBiometria); var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0(); NBioAPI.IndexSearch.FP_INFO nitgenBiometria; retorno = contexto.MecanismoConfirmacao.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH, out nitgenBiometria, cbInfo); var idEncontrado = nitgenBiometria.ID; contexto.MecanismoConfirmacao.RemoveUser((uint)biometria.Id); if (idEncontrado > 0) { relogio.Stop(); Console.WriteLine($"{contexto.Id} - Localizado {biometria.Id} em {relogio.Elapsed.TotalSeconds}"); return (int)idEncontrado; } } } relogio.Stop(); Console.WriteLine($"{contexto.Id} - Nenhuma biometria encontrada em {relogio.Elapsed.TotalSeconds}"); return 0; }, contextoIdentificacao, token)); }
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 static BiometriaIndentificacaoContexto Novo(NBioAPI.IndexSearch mecanismoBusca, NBioAPI.Export conversor) => new BiometriaIndentificacaoContexto(Guid.NewGuid(), mecanismoBusca, conversor);
public BiometriaIndentificacaoContexto(Guid id, NBioAPI.IndexSearch mecanismoBusca, NBioAPI.Export conversor) { Id = id; MecanismoBusca = mecanismoBusca; Conversor = conversor; }
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; } } }
public ContextoParaIndentificacaoBiometrica(Guid id, NBioAPI.IndexSearch mecanismoBusca, NBioAPI.Type.HFIR templateLido) { Id = id; MecanismoBusca = mecanismoBusca; TemplateLido = templateLido; }
public IdentificarBiometriaHandler() { _nitgenMainApi = new NBioAPI(); _nitgenSearchApi = new NBioAPI.IndexSearch(_nitgenMainApi); _nitgenSearchApi.InitEngine(); }
internal NitgenBiometriaTask(Guid id, NBioAPI.IndexSearch mecanismoBusca) { Id = id; MecanismoBusca = mecanismoBusca; }