如何在 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)。我在数据库中修改了这个并且它起作用了。