如何在 C# 中验证来自 SQL 服务器的 DPFP 指纹
How to verify DPFP finger print from SQL Server in C#
我已经将 dpfp 模板保存在 varbinary(max)
列中,现在我从数据库中检索它,转换为 byte[]
,然后反序列化它,然后放入 verify() 方法,但出现错误:
Exception from HRESULT: 0xFFFFFFF8
此处显示了我获取数据的方式:
SqlConnection cn = new SqlConnection(@"Data Source=Windows\me;Initial Catalog=Enroll;Persist Security Info=True;User ID=sa ; Password=sa123");
cn.Open();
SqlDataAdapter adp = new SqlDataAdapter("Select varb from employee where employeeid='127'", cn);
DataTable dt = new DataTable();
adp.Fill(dt);
bytes= ConvertDataSetToByteArray(dt);
Template = new DPFP.Template();
Template.DeSerialize(bytes);
<b>Verificator.Verify(features, Template, ref result);</b>
UpdateStatus(result.FARAchieved);
if (result.Verified)
MakeReport("The fingerprint was VERIFIED.");
else
MakeReport("The fingerprint was NOT VERIFIED.");
此 Verify()
未验证来自数据库的数据。
我的错误在哪里?在转换?或者没有正确获取数据?
Convert DataSet ToByteArray() 方法应该被排除
数据表中的 System.Byte
将通过以下方式转换为 byte[]
:
foreach (DataRow row in dt.Rows)
{
bytes = (byte[])row["varb"];
}
我的问题是存储在 sql 服务器数据库中。
我使用的是 varbinary (MAX),指纹需要二进制 (1632)。我在数据库中修改了这个并且它起作用了。
我已经将 dpfp 模板保存在 varbinary(max)
列中,现在我从数据库中检索它,转换为 byte[]
,然后反序列化它,然后放入 verify() 方法,但出现错误:
Exception from HRESULT: 0xFFFFFFF8
此处显示了我获取数据的方式:
SqlConnection cn = new SqlConnection(@"Data Source=Windows\me;Initial Catalog=Enroll;Persist Security Info=True;User ID=sa ; Password=sa123");
cn.Open();
SqlDataAdapter adp = new SqlDataAdapter("Select varb from employee where employeeid='127'", cn);
DataTable dt = new DataTable();
adp.Fill(dt);
bytes= ConvertDataSetToByteArray(dt);
Template = new DPFP.Template();
Template.DeSerialize(bytes);
<b>Verificator.Verify(features, Template, ref result);</b>
UpdateStatus(result.FARAchieved);
if (result.Verified)
MakeReport("The fingerprint was VERIFIED.");
else
MakeReport("The fingerprint was NOT VERIFIED.");
此 Verify()
未验证来自数据库的数据。
我的错误在哪里?在转换?或者没有正确获取数据?
Convert DataSet ToByteArray() 方法应该被排除
数据表中的 System.Byte
将通过以下方式转换为 byte[]
:
foreach (DataRow row in dt.Rows)
{
bytes = (byte[])row["varb"];
}
我的问题是存储在 sql 服务器数据库中。
我使用的是 varbinary (MAX),指纹需要二进制 (1632)。我在数据库中修改了这个并且它起作用了。