Lector Biométrico?

Lector Biométrico?

Postby Armando » Sat Jul 15, 2023 5:31 am

Saludos al foro:

En una reciente aplicación el cliente quiere que el usuario se identifique en el LOGIN por su huella digital.

Acaso el lector biométrico funciona igual que un lector de código de barras?

Alguien que me tire una hebra, o mejor, si tiene un pequeño ejemplo, será muy agradecido.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3209
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Lector Biométrico?

Postby Antonio Linares » Sat Jul 15, 2023 4:38 pm

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42078
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Lector Biométrico?

Postby csincuir » Sat Jul 15, 2023 4:58 pm

Hola Armando, en su momento yo utilice este lector biometrico:
https://secugen.com/products/hamster-iv/
Pero de la noche de la mañana, por las actualizaciones de Windows, dejó de funcionar :cry:

Pero aca te envío unos ejemplo para que puedas darte una idea de como funcionaba el proceso:
    Leer la huella: BioCapture()
    Enrolar una huella: BioEnroll()
    Verificar una huella: VerificaHuella()

Code: Select all  Expand view

///-------------------------------------------------------------------
FUNCTION BioCapture()     
Local oNBioBSP,  nDeviceId, cEnroll, lSecuGen

lSecuGen := .t.
    TRY
    oNBioBSP := CreateObject("SecuBSPMxCOM.APIInterface")
    CATCH
      lSecuGen := .f.
    END 
   
   
    IF !lSecuGen
       MsgAlert( "No esta instalado el lector de huella","Verifique por favor..." )
   
       oNBioBSP := NIL
       Return ""
    End


IF lSecuGen

   oNBioBSP:EnumerateDevice()
   
   nDeviceId := oNBioBSP:DeviceNum() //Numero de Dispositivos
   If Empty( nDeviceId )
      MsgAlert("No esta conectado el Lector Biometrico en su equipo...","Verifique por favor..." )
      oNBioBSP := NIL
      Return ""   
   End
   
   nDeviceId := oNBioBSP:DeviceID(0)

   oNBioBSP:OpenDevice( nDeviceId )
   
   oNBioBSP:Capture()
   cEnroll := ""
   If oNBioBSP:ErrorCode == 0
      cEnroll := oNBioBSP:FIRTextData()
   EndIf
   oNBioBSP:CloseDevice( nDeviceId )

   oNBioBSP := NIL

   Return( cEnroll )
End


Return( "" )



///-------------------------------------------------------------------
FUNCTION BioEnroll()       
Local oNBioBSP, oDevice, nDeviceId, cEnroll, oExt, oMatch
Local oEnroll, oCapture, oExtra, oTemp, oVEr, lOk, hLib, lSecuGen

lOk := .T.
TRY
   oNBioBSP:=CreateObject('MyDll.Suma')
   cEnroll := AllTrim( oNBioBSP:Enroll() )
CATCH
  lOk := .f.
END
    IF !lOk
       MsgAlert( "No esta instalado el lector de huella","Verifique por favor..." )
   
       oNBioBSP := NIL
       Return ""
    End

Return( cEnroll )  

lSecuGen := .f.

lOk := .T.
TRY
oNBioBSP := CreateObject("NBioBSPCOM.NBioBSP")
CATCH
  lOk := .f.
END

If !lOk
    lSecuGen := .t.
    TRY
    oNBioBSP := CreateObject("SecuBSPMxCOM.APIInterface")
    CATCH
      lSecuGen := .f.
    END
    IF !lSecuGen
       MsgAlert( "No esta instalado el lector de huella","Verifique por favor..." )
   
       oNBioBSP := NIL
       Return ""
    End
End

IF lSecuGen
   oNBioBSP:EnumerateDevice()
   
   nDeviceId := oNBioBSP:DeviceNum() //Numero de Dispositivos
   If Empty( nDeviceId )
      MsgAlert("No esta conectado el Lector Biometrico en su equipo...","Verifique por favor..." )
      oNBioBSP := NIL
      Return ""   
   End
   
   nDeviceId := oNBioBSP:DeviceID(0)

   oNBioBSP:OpenDevice( nDeviceId )
   
   oNBioBSP:Enroll(NIL)
   cEnroll := ""
   If oNBioBSP:ErrorCode == 0
      cEnroll := oNBioBSP:FIRTextData()
   EndIf
   oNBioBSP:CloseDevice( nDeviceId )

   oNBioBSP := NIL
   
   Return( cEnroll )
End

lOk := .T.
TRY
   oDevice := oNBioBSP:Device()
CATCH
  lOk := .f.
END

If !lOk
   MsgAlert( "No esta instalado el lector de huella","Verifique por favor..." )
   oNBioBSP := NIL
   Return ""
End

oDevice:Enumerate()

nDeviceId := oDevice:EnumDeviceID( 0 )

oDevice:Open( nDeviceID )

oExt := oNBioBSP:Extraction()

cEnroll := ""
oExt:Enroll( cEnroll )
cEnroll :=  oExt:TextEncodeFIR()


oDevice:Close( nDeviceID )

oNBioBSP := 0

Return( cEnroll )


///-------------------------------------------------------------------
FUNCTION VerificaHuella(lVer,cUser,cHuella)   
Local cEnroll1, cEnroll2, cSql, nRet, cUser

DEFAULT lVer := .f.

If lVer
   If Empty(cUser)
      MsgAlert( "No ingreso el ID del Usuario...","Verifique por favor..." )
      Return ""    
   End
Else
    cUser:=Space(40)
    _MsgGet( " Verificando...","Usuario:",@cUser )

    If Empty( cUser )
       MsgAlert( "No ingreso el ID del Usuario...","Verifique por favor..." )
       Return ""
    End

End 

cSql := "SELECT huellatxt FROM usuarios WHERE usuario='"+allTrim(cUser)+"'"
cEnroll1 := cHuella
If Empty( cEnroll1 )
   IF lVer
      MsgAlert( "El Usuario actual no tiene definida su Impresion Digital...","Verifique por favor..." )
      Return .f.
   End
   MsgAlert( "El Usuario ingresado no tiene definida su Impresion Digital...","Verifique por favor..." )
   Return ""
End
   
cEnroll2 := BioCapture()       
If Empty( cEnroll2 )
   If lVer
      Return .f.
   End
   Return ""
End

nret := BioVerify( cEnroll1, cEnroll2 ) 
If nRet == 0
   MsgAlert( "La Impresion Digital ingresada no Coincide con la del Usuario: "+cUser,"Verifique por favor..." )
   If lVer
      Return .f.
   End
   cUser := ""
End
If lVer
   Return .t.
End

Return cUser
 


Saludos cordiales

Carlos.
Last edited by csincuir on Mon Jul 17, 2023 12:41 pm, edited 1 time in total.
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Lector Biométrico?

Postby Armando » Sat Jul 15, 2023 8:46 pm

Antonio, gracias!

Carlos, gracias por el ejemplo.

La duda, suministran alguna DLL con el lector biométrico?

Saludos, y gracias nuevamente
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3209
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Lector Biométrico?

Postby csincuir » Mon Jul 17, 2023 12:40 pm

Si Armando,
En la opción de solicitar descargas de software gratis de la web de la empresa que vende este biométrico, puedes descargar el SDK para Windows, y como dice el link, son gratis.
https://secugen.com/request-free-software/

Saludos cordiales.

Carlos
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Lector Biométrico?

Postby Armando » Mon Jul 17, 2023 4:11 pm

Carlos:

Muchísimas gracias, parece que veo la luz al final del túnel, solo una pregunta mas.

Aunque puedo intuirlo, solo quiero confirmar; en que tipo de campo almacenas la
huella cuando das de alta al usuario?

Saludos y disculpa tantas molestias
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3209
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Lector Biométrico?

Postby csincuir » Mon Jul 17, 2023 4:41 pm

Armando,
Guardo la huella biometrica en un campo "text" de una tabla de MySQL:
Code: Select all  Expand view
CREATE TABLE `usuarios` (
    `usuario` VARCHAR(40) NOT NULL DEFAULT '' ,
    `supervisor` CHAR(1) NULL DEFAULT NULL ,
    `nombre` VARCHAR(60) NOT NULL ,
    `rol` VARCHAR(40) NOT NULL DEFAULT '' ,
    `passw` VARCHAR(40) NOT NULL DEFAULT '' ,
    `fechaloc` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `huellatxt` TEXT NOT NULL ,
    `lectorbio` CHAR(1) NOT NULL DEFAULT 'N' ,
    PRIMARY KEY (`usuario`)
);


Es el campo "huellatxt"

Ten en cuenta que el SDK trae ejemplos de Visual C++, C# y VB, con lo que logre obtener el codigo que ya te envié y funcionó correctamente un tiempo, pero, dejó de funcionar y no se porque, y ya no logré que funcionara de nuevo. Si detecta el Biometrico instalado pero ya no logré que volviera a presentar el diálogo de lectura biometrica :?

Saludos cordiales.

Carlos.
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Lector Biométrico?

Postby Armando » Mon Jul 17, 2023 4:44 pm

Carlos:

Muchas gracias, con eso puedo empezar a tejer.

Un abrazo
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3209
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 24 guests