C# 将指纹保存并提取到数据库
我使用的是数字人物U.are.U 5100指纹阅读器。我面临的问题是,注册只会暂时保存。如何将其保存到数据库中C# 将指纹保存并提取到数据库,c#,fingerprint,C#,Fingerprint,我使用的是数字人物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> pri
/// <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);
}
}
//
///捕获指纹时的处理程序。
///
///包含有关指纹捕获的信息和数据
捕获私有void(CaptureResult CaptureResult)
{
尝试
{
//检查捕获质量,如果错误则抛出错误。
如果(!\u sender.CheckCaptureResult(captureResult))返回;
计数++;
数据结果转换=
FeatureExtraction.CreateFmdFromFid(captureResult.Data,
常量.Formats.Fmd.ANSI);
SendMessage(Action.SendMessage),捕获了一个手指。
\r\n计数:“+(计数));
如果(resultConversion.ResultCode!=
Constants.ResultCode.DP_成功)
{
_sender.Reset=true;
抛出新异常(resultConversion.ResultCode.ToString());
}
preenrollmentFmds.Add(resultConversion.Data);
如果(计数>=4)
{
DataResult结果滚动=
DPUruNet.Enrollment.CreateEnrollmentFmd(Constants.Formats)。
Fmd.ANSI,
预登记(FMDS);
如果(ResultRolliment.ResultCode==
Constants.ResultCode.DP_成功)
{
SendMessage(Action.SendMessage,“注册FMD已被删除。”
已成功创建“”);
SendMessage(Action.SendMessage,“将手指放在
读者。”);
preenrollmentFmds.Clear();
计数=0;
返回;
}
else if(resultrollment.ResultCode==
常量.ResultCode.DP\u注册\u无效\u集)
{
SendMessage(Action.SendMessage,“注册已完成”
不成功。请重试。“);
SendMessage(Action.SendMessage,“将手指放在
读者。”);
preenrollmentFmds.Clear();
计数=0;
返回;
}
}
SendMessage(Action.SendMessage,“现在将同一个手指放在
读者。”);
}
捕获(例外情况除外)
{
//发送错误消息,然后关闭表单
SendMessage(Action.SendMessage,“错误:+ex.Message”);
}
}
我知道这是一个旧线程。但我最近才发现如何使用数字角色来实现这一点
试用
Fmd.SerializeXml(fmd);
Fmd.DeserializeXml(*retrieved string from database*);
它返回字符串,以便您可以将其直接保存为数据库中的字符串并按原样检索
然后在解码时尝试使用
Fmd.DeserializeXml(*retrieved string from database*);
它返回fmd,因此您现在可以将其与当前输入进行比较。Hi,如果我的数据库中有大约100个fmd存储为100个字符串,为了比较它们(用于授权用户),我是否应该从数据库中获取所有fmd?最佳做法是什么?@Lichte Hi,你能解决吗?运气好吗?我正在寻找相同的…过了一段时间,我决定将指纹作为文件存储在连接指纹的设备上。我认为这样更安全,因为加密密钥的一部分是设备本身的mac。因此,即使加密文件被泄露,没有设备也无法解密@戴维诺雷纳