ASP.NET程序读取二代身份证

一般来说winform应用程序解决这个问题起来时很容易的,web应用程序就麻烦一点了。

这里我说说我的解决思路:

一、你必要有联机型居民身份证阅读器一个(带驱动光盘),这里我用的是精伦电子公司的 iDR200,并有这个阅读器的开发接口说明。

二、新建一个winform控件项目ReadCardControl,添加一个主类ReadCard

1、声明dll入口

[DllImport("Sdtapi.dll")]
         private static extern int InitComm(int iPort);//初始化
         [DllImport("Sdtapi.dll")]
         private static extern int Authenticate();//卡认证
         [DllImport("Sdtapi.dll")]
         private static extern int ReadBaseInfos(StringBuilder Name,  StringBuilder Gender, StringBuilder Folk, StringBuilder BirthDay, StringBuilder  Code, StringBuilder Address, StringBuilder Agency, StringBuilder ExpireStart,  StringBuilder ExpireEnd);//读取数据,推荐使用
         [DllImport("Sdtapi.dll")]
         private static extern int CloseComm();//关闭端口
         [DllImport("Sdtapi.dll")]
         private static extern int ReadBaseMsg(byte[] pMsg, ref int  len);//读取数据,这里不用
         [DllImport("Sdtapi.dll")]
         private static extern int ReadBaseMsgW(byte[] pMsg, ref int  len);//读取数据,这里不用
         [DllImport("kernel32.dll")]
         private static extern int Beep(int dwFreq, int  dwDuration);//用来大吼一声

2、读卡方法

private string[] arrys = null;//声明用来保存身份证信息的数组
         public void OnTimer()
         {
             StringBuilder Name = new StringBuilder(31);
             StringBuilder Gender = new StringBuilder(3);
             StringBuilder Folk = new StringBuilder(10);
             StringBuilder BirthDay = new StringBuilder(9);
             StringBuilder Code = new StringBuilder(19);
             StringBuilder Address = new StringBuilder(71);
             StringBuilder Agency = new StringBuilder(31);
             StringBuilder ExpireStart = new StringBuilder(9);
             StringBuilder ExpireEnd = new StringBuilder(9);
             //int len = 0;
             //string[] temp;
             char[] param = { '\0' };
             byte[] pMsg = new byte[256];
             string[] baseinfo = new string[9];

             //打开端口
             int intOpenRet = InitComm(1001);
             if (intOpenRet != 1)
             {
                 //SetText("阅读机具未连接", lblMsg);
                 return;
             }
             //卡认证
             int intReadRet = Authenticate();
             if (intReadRet != 1)
             {
                 //SetText("卡认证失败", lblMsg);
                 CloseComm();
                 return;
             }
             //ReadBaseInfos(推荐使用)
             int intReadBaseInfosRet = ReadBaseInfos(Name, Gender,  Folk, BirthDay, Code, Address, Agency, ExpireStart, ExpireEnd);
             if (intReadBaseInfosRet != 1)
             {
                 //SetText("读卡失败", lblMsg);
                 CloseComm();
                 return;
             }
             Beep(2047, 200);
             arrys = new string[10];
             arrys[0] = Code.ToString().Trim();
             arrys[1] = Name.ToString().Trim();
             arrys[2] = Gender.ToString().Trim();
             arrys[3] = Folk.ToString().Trim();
             arrys[4] = BirthDay.ToString().Trim();
             arrys[5] = Address.ToString().Trim();
             arrys[6] = Agency.ToString().Trim();
             arrys[7] = ExpireStart.ToString().Trim();
             arrys[8] = ExpireEnd.ToString().Trim();
             arrys[9] = System.IO.Directory.GetCurrentDirectory() +  "\\photo.bmp";
             //SetText("读卡成功", lblMsg);
             //SetText("证件号码:" + Code.ToString(), label1);
             //SetText("姓名:" + Name.ToString(), label2);
             //SetText("性别:" + Gender.ToString(), label3);
             //SetText("民族:" + Folk.ToString(), label4);
             //SetText("出生日期:" + BirthDay.ToString(),  label5);
             //SetText("地址:" + Address.ToString(), label6);
             //SetText("签发机关:" + Agency.ToString(), label7);
             //SetText("签发时间:" + ExpireStart.ToString(),  label8);
             //SetText("有效截止时间:" + ExpireEnd.ToString(),  label9);
             SetImage("photo.bmp", pictureBox1);
             CloseComm();
         }

时间: 2024-08-31 19:50:37

ASP.NET程序读取二代身份证的相关文章

ASP.NET程序读取二代身份证(附源码)

原文:ASP.NET程序读取二代身份证(附源码)  一般来说winform应用程序解决这个问题起来时很容易的,web应用程序就麻烦一点了. 这里我说说我的解决思路: 一.你必要有联机型居民身份证阅读器一个(带驱动光盘),这里我用的是精伦电子公司的iDR200,并有这个阅读器的开发接口说明. 二.新建一个winform控件项目ReadCardControl,添加一个主类ReadCard 1.  声明dll入口         [DllImport("Sdtapi.dll")]      

C#读取二代身份证(精伦机)ReadBaseInfos返回-4 是什么原因造成的

问题描述 C#读取二代身份证(精伦机)ReadBaseInfos返回-4是什么原因造成的privatestaticexternintReadBaseInfos(StringBuilderName,StringBuilderGender,StringBuilderFolk,StringBuilderBirthDay,StringBuilderCode,StringBuilderAddress,StringBuilderAgency,StringBuilderExpireStart,StringBu

本地设备读取二代身份证信息传送到当前Web网页 我该如何实现

问题描述 最近有个考勤管理的项目,项目要求在添加员工信息的时候,基础信息要通过外接设备读取身份证获取,不能手动填写.(当然是B/S端的)本来设备厂商提供了开发文档和开发包.具体的功能也基本上实现了.可是现在我遇到一个很头疼的问题,厂商提供的Web开发时采用ActiveX控件的形式获取本地数据,众所周知,ActiveX是微软的东西,非IE内核的浏览器都不支持.老大又要考虑各种浏览器的兼容性.我盲目了.在网上找了很多资料,然而没有卵用.要不就是过时,要么就是看不懂的.来个大神,大腿借我抱抱.嘻嘻..

基于二代身份证读卡器的报名信息网络采集系统设计

硅谷网12月8日文 据<硅谷>2012年第18期刊文,信息技术进步提高各行各业的工作效率,通过专门的读卡器读取二代身份证的信息,用于录入学生报名信息,使得采集工作又快又准.阐述通过Web利用二代身份证读卡器直接读取.传输.存储个人信息相关数据的技术,并对网页预读模块的关键技术作详细的说明.该技术能无缝的耦合到常用的网页报名系统,成本低.宜维护.易兼容,利于推广使用. 高职院校扎根地区经济建设,为地方提供科技和人才支持,其社会服务功能日趋明显,尤其在人才培养上得到了企业.社会和政府的肯定和信赖.

二代身份证读取-微调版

原文:二代身份证读取-微调版 说起微调其实就是对 上一篇文章 今天意外和身份证结缘 中提到的代码码放和调用一些巧妙的用法(至少小鬼觉得很有意思很巧妙). 为什么有必要在写一篇 写的理由千千万:不写的理由万万千.对于小鬼来说就是:我吃饱了,撑着了,该找点事做了.于是神情恍惚,目光呆滞的敲着键盘,陶醉的望着跳动的光标,嘴角上扬.       IDCardReader #region Usingusing System;using System.IO;using System.Runtime.Inte

asp.net程序来读取多语言版本Ini配置文件

这是asp.net程序来读取多语言版本Ini配置文件的开发示例,主要分为以下三个部分: 1. Ini 配置文件 2. 读取Ini配置文件的DLL 3. Web页面调用与内容显示 4. 数据库表T_User,如右图 首先说明一下Ini 文件格式:如下图其中[M_Index]节点和该节点下的所有的key和value,其中[M_Index]节点的名称是对应开发示例中的每个页面所在的文件夹名称的第一个字母加下划线再加该页面的名称组合而成,如 M_Index 则表示Manager文件夹下面有一个Index

一起谈.NET技术,asp.net程序来读取多语言版本Ini配置文件

这是asp.net程序来读取多语言版本Ini配置文件的开发示例,主要分为以下三个部分: 1. Ini 配置文件 2. 读取Ini配置文件的DLL 3. Web页面调用与内容显示 4. 数据库表T_User,如右图  首先说明一下Ini 文件格式:如下图其中[M_Index]节点和该节点下的所有的key和value,其中[M_Index]节点的名称是对应开发示例中的每个页面所在的文件夹名称的第一个字母加下划线再加该页面的名称组合而成,如 M_Index 则表示Manager文件夹下面有一个Inde

ASP应用程序的安全

千万不要轻视正确配置安全设置的重要性.如果不正确配置安全设置,不但会使您的 ASP 应用程序遭受不必要的篡改,而且会妨碍正当用户访问您的 .asp 文件. Web 服务器提供了各种方法来保护您的 ASP 应用程序免受未授权的访问和篡改.在您读完本主题下的安全信息之后,请花一定的时间仔细检查一下您的 Win dows NT 和 Web 服务器安全性文档. NTFS 权限 您可以通过为单独的文件和目录应用 NTFS 访问权限来保护 ASP 应用程序文件.NTFS 权限是 Web 服务器安全性的基础,

维护ASP应用程序的安全

安全|程序 千万不要轻视正确配置安全设置的重要性.如果不正确配置安全设置,不但会使您的 ASP 应用程序遭受不必要的篡改,而且会妨碍正当用户访问您的 .asp 文件. Web 服务器提供了各种方法来保护您的 ASP 应用程序免受未授权的访问和篡改.在您读完本主题下的安全信息之后,请花一定的时间仔细检查一下您的 Windows NT 和 Web 服务器安全性文档.详细信息,请参阅 安全性. NTFS 权限 您可以通过为单独的文件和目录应用 NTFS 访问权限来保护 ASP 应用程序文件.NTFS