我们如何将指纹读取器部署到C#web应用程序?

我们如何将指纹读取器部署到C#web应用程序?,c#,sql-server-2008-r2,fingerprint,C#,Sql Server 2008 R2,Fingerprint,我正在开发一个工资系统,在这个系统中,考勤应该通过指纹机记录。我已经安装了SDK软件,但我不知道如何在我的web应用程序中部署它。另外,我们如何将指纹保存在数据库中,以便根据指纹保存考勤详细信息 提前谢谢 法雷达·侯赛因我们以前有一个这样的项目。你需要一个sdk(软件开发工具包)才能进入你的设备。将其添加到您的项目引用中,以便您可以与之通信。我相信SDK站点中有一个示例代码,您可以在指纹阅读器中找到,您可以修改它。 无论如何,这是我们直接在数据库中保存指纹的示例代码 private void S

我正在开发一个工资系统,在这个系统中,考勤应该通过指纹机记录。我已经安装了SDK软件,但我不知道如何在我的web应用程序中部署它。另外,我们如何将指纹保存在数据库中,以便根据指纹保存考勤详细信息

提前谢谢
法雷达·侯赛因

我们以前有一个这样的项目。你需要一个sdk(软件开发工具包)才能进入你的设备。将其添加到您的项目引用中,以便您可以与之通信。我相信SDK站点中有一个示例代码,您可以在指纹阅读器中找到,您可以修改它。

无论如何,这是我们直接在数据库中保存指纹的示例代码

private void SaveButton_Click(object sender, EventArgs e)
{
    MemoryStream fingerprintData = new MemoryStream();
    Template.Serialize(fingerprintData);
    fingerprintData.Position = 0;
    BinaryReader br = new BinaryReader(fingerprintData);
    Byte[] bytes = br.ReadBytes((Int32)fingerprintData.Length);

    //Insert the file into database
    SqlConnection cn = new SqlConnection("Data Source=10.115.5.3; Initial Catalog=EnrollmentSampledb;Integrated Security=SSPI;");
    SqlCommand cmd = new SqlCommand("INSERT INTO tblUser VALUES(@ID_NUMBER, @FIRSTNAME, @LASTNAME, @FINGERPRINT, @DATE_ADDED, @DATE_MODIFIED)", cn);
    cmd.Parameters.Add("ID_NUMBER", SqlDbType.NVarChar).Value = tboxIdNum.Text;
    cmd.Parameters.Add("FIRSTNAME", SqlDbType.NVarChar).Value = tboxFname.Text;
    cmd.Parameters.Add("LASTNAME", SqlDbType.NVarChar).Value = tboxLname.Text;
    cmd.Parameters.Add("FINGERPRINT", SqlDbType.Image).Value = bytes;
    cmd.Parameters.Add("DATE_ADDED", SqlDbType.DateTime).Value = DateTime.Now;
    cmd.Parameters.Add("DATE_MODIFIED", SqlDbType.DateTime).Value = DateTime.Now;

    cn.Open();
    cmd.ExecuteNonQuery();
    cn.Close();

    tboxIdNum.Text = "";
    tboxFname.Text = "";
    tboxLname.Text = "";
}   
另请参阅我关于直接在数据库中保存指纹的类似问题。

区域功能指纹
private void SaveButton_Click(object sender, EventArgs e)
{
    MemoryStream fingerprintData = new MemoryStream();
    Template.Serialize(fingerprintData);
    fingerprintData.Position = 0;
    BinaryReader br = new BinaryReader(fingerprintData);
    Byte[] bytes = br.ReadBytes((Int32)fingerprintData.Length);

    //Insert the file into database
    SqlConnection cn = new SqlConnection("Data Source=10.115.5.3; Initial Catalog=EnrollmentSampledb;Integrated Security=SSPI;");
    SqlCommand cmd = new SqlCommand("INSERT INTO tblUser VALUES(@ID_NUMBER, @FIRSTNAME, @LASTNAME, @FINGERPRINT, @DATE_ADDED, @DATE_MODIFIED)", cn);
    cmd.Parameters.Add("ID_NUMBER", SqlDbType.NVarChar).Value = tboxIdNum.Text;
    cmd.Parameters.Add("FIRSTNAME", SqlDbType.NVarChar).Value = tboxFname.Text;
    cmd.Parameters.Add("LASTNAME", SqlDbType.NVarChar).Value = tboxLname.Text;
    cmd.Parameters.Add("FINGERPRINT", SqlDbType.Image).Value = bytes;
    cmd.Parameters.Add("DATE_ADDED", SqlDbType.DateTime).Value = DateTime.Now;
    cmd.Parameters.Add("DATE_MODIFIED", SqlDbType.DateTime).Value = DateTime.Now;

    cn.Open();
    cmd.ExecuteNonQuery();
    cn.Close();

    tboxIdNum.Text = "";
    tboxFname.Text = "";
    tboxLname.Text = "";
}   
protectedvoid ReaderFPMachine()
{
_readerCollection=readerCollection.GetReaders();
foreach(读者在_readerCollection中)
{
_fPMachineID=Reader.Description.SerialNumber;
打破
}
这是CheckFingerPrint();
}
受保护的void CheckFingerPrint()
{
尝试
{
_finger=null;
_reader=_readerCollection[0];
如果(!OpenReader())
{
//这个。关闭();
}
如果(!startCaptureAync(this.OnCaptured))
{
//这个。关闭();
}
}
捕获(例外情况除外)
{
}
}
捕获私有void(CaptureResult CaptureResult)
{
尝试
{
_finger=null;
//检查捕获质量,如果错误则抛出错误。
如果(!CheckCaptureResult(captureResult))返回;
//SendMessage(Action.SendMessage,“捕获了一根手指”);
DataResult resultConversion=FeatureExtraction.CreateFmdFromFid(captureResult.Data,Constants.Formats.Fmd.ANSI);
if(resultConversion.ResultCode!=Constants.ResultCode.DP_成功)
{
_重置=真;
抛出新异常(resultConversion.ResultCode.ToString());
}
_finger=结果转换.Data;
_指纹ID=Fmd.SerializeXml(_finger);
//MsVisitorHd _MsVisitorHd=this._vMSBL.getSingleMsvisitorHdbyFingerID(_fingerXML);
//List _listMsVisitorHd=this._vMSBL.GetListMsVisitorHd();
bool _exist=false;
//foreach(列表MSVisitorHD中的变量项)
//{
//Fmd _Fmd=Fmd.DeserializeXml(_fingerprincid);
//Fmd _fmd2=Fmd.DeserializeXml(_item.FingerPrintID);
//CompareResult CompareResult=比较。比较(_-fmd,0,_-fmd2,0);
//if(compareResult.ResultCode!=Constants.ResultCode.DP\u SUCCESS)
//    {
//_reset=true;
//抛出新异常(compareResult.ResultCode.ToString());
//    }
//否则
//    {
//如果(比较结果分数<(概率为1/100000))
//        {
////_visitorExist=新的MsVisitorHd();
////\u visitorExist=\u项;
//_exist=true;
//中断;
//        }
//否则
//        {
//        }
//    }
//}
如果(!CheckCaptureResult(captureResult))返回;
//创建位图
foreach(captureResult.Data.Views中的Fid.Fiv-Fiv)
{
this.FingerPictureBox.BackgroundImage=创建位图(fiv.RawImage、fiv.Width、fiv.Height);
}
如果(_存在)
{
_fgMember=“Y”;
//MessageBox.Show(“Sidik jadi terdaftar sebagai”+_visitorExist.VisitorName);
}
其他的
{
_fgMember=“N”;
}
//SendMessage(Action.SendMessage,secondFinger.Bytes.ToString()+“比较结果的相异性得分为”+compareResult.score.ToString()+(compareResult.score<(概率为1/100000);“(指纹匹配)”:“(指纹不匹配”);
//SendMessage(Action.SendMessage,“将手指放在阅读器上”);
//计数=0;
//}
}
捕获(例外情况除外)
{
//发送错误消息,然后关闭表单
//SendMessage(Action.SendMessage,“错误:+ex.Message”);
}
}
公共bool OpenReader()
{
_重置=错误;
Constants.ResultCode结果=Constants.ResultCode.DP\u设备故障;
//开放式阅读器
结果=_reader.Open(Constants.CapturePriority.DP_PRIORITY_COOPERATIVE);
if(result!=Constants.ResultCode.DP_SUCCESS)
{
MessageBox.Show(“错误:+结果”);
_重置=真;
返回false;
}
返回复位;
}
public void GetStatus()
{
Constants.ResultCode结果=_reader.GetStatus();
if((result!=Constants.ResultCode.DP_SUCCESS))
{
_重置=真;
抛出新异常(“+”结果);
}
if(_reader.Status.Status==Constants.readerstatus.DP_Status_BUSY))
{
睡眠(50);
}
else if(_reader.Status.Status==Constants.readerstatus.DP_Status_NEED_CALIBRATION))
{
_reader.Calibrate();
}
else if(_reader.Status.Status!=Constants.readerstatus.DP_Status_READY))
{
抛出新异常(“读卡器状态-”+_Reader.Status.Status);
}
}
公共bool检查CaptureResult(CaptureResult CaptureResult