【问题标题】:Save and extract fingerprint to database保存并提取指纹到数据库
【发布时间】:2017-04-06 16:38:37
【问题描述】:

我正在使用数字角色 U.are.U 5100 指纹读取器。我面临的问题是,注册只会暂时保存。如何将其保存到数据库中?

/// <summary>
/// Handler for when a fingerprint is captured.
/// </summary>
/// <param name="captureResult">contains info and data on the fingerprint capture</param>
private void OnCaptured(CaptureResult captureResult)
{
    try
    {
        // Check capture quality and throw an error if bad.
        if (!_sender.CheckCaptureResult(captureResult)) return;

        count++;

        DataResult<Fmd> resultConversion =  
        FeatureExtraction.CreateFmdFromFid(captureResult.Data, 
                                           Constants.Formats.Fmd.ANSI);

        SendMessage(Action.SendMessage, "A finger was captured.   
                    \r\nCount:  " + (count));

        if (resultConversion.ResultCode !=  
            Constants.ResultCode.DP_SUCCESS)
        {
            _sender.Reset = true;
            throw new Exception(resultConversion.ResultCode.ToString());
        }

        preenrollmentFmds.Add(resultConversion.Data);

        if (count >= 4)
        {
            DataResult<Fmd> resultEnrollment =  
            DPUruNet.Enrollment.CreateEnrollmentFmd(Constants.Formats.
                                                    Fmd.ANSI,  
                                                    preenrollmentFmds);

            if (resultEnrollment.ResultCode == 
                Constants.ResultCode.DP_SUCCESS)
            {
                SendMessage(Action.SendMessage, "An enrollment FMD was 
                            successfully created.");
                SendMessage(Action.SendMessage, "Place a finger on the 
                            reader.");
                preenrollmentFmds.Clear();
                count = 0;
                return;
            }
            else if (resultEnrollment.ResultCode == 
                     Constants.ResultCode.DP_ENROLLMENT_INVALID_SET)
            {
                SendMessage(Action.SendMessage, "Enrollment was 
                unsuccessful.  Please try again.");
                SendMessage(Action.SendMessage, "Place a finger on the  
                reader.");
                preenrollmentFmds.Clear();
                count = 0;
                return;
            }
        }

        SendMessage(Action.SendMessage, "Now place the same finger on the            
        reader.");
    }
    catch (Exception ex)
    {
           // Send error message, then close form
            SendMessage(Action.SendMessage, "Error:  " + ex.Message);                
    }  
}

【问题讨论】:

    标签: c# fingerprint


    【解决方案1】:

    我知道这是一个旧线程。但我最近才弄清楚如何使用数字角色来做到这一点。

    尝试使用

    Fmd.SerializeXml(fmd);
    

    它返回字符串,因此您可以将其直接保存为数据库中的字符串并按原样检索。

    然后在解码时尝试使用

    Fmd.DeserializeXml(*retrieved string from database*);
    

    它返回 fmd,因此您现在可以将其与当前输入进行比较。

    【讨论】:

    • 嗨,如果我有大约一百个 fmds 作为一百个字符串存储在我的数据库中,为了比较它们(用于授权用户),我应该从数据库中带来所有 fmds 吗?最佳做法是什么?
    • @Lichte 嗨,你能解决吗?运气好的话 ?我正在寻找相同的...
    • 过了一会儿,我决定将指纹作为文件存储在连接指纹的设备上。我认为它更安全,因为加密密钥的一部分是设备本身的 mac。因此,即使加密的文件会被泄露,如果没有设备,它们也无法解密。 @DavidNoreña
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    相关资源
    最近更新 更多