B_S架构下浏览器端访问本地读卡器方法的研究与实现.doc_第1页
B_S架构下浏览器端访问本地读卡器方法的研究与实现.doc_第2页
B_S架构下浏览器端访问本地读卡器方法的研究与实现.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

B/S 架构下浏览器端访问本地读卡器方法的研究与实现钱文婷(泰州机电高等职业技术学校,江苏 泰州 225300)摘要:介绍在 B/S 架构下,采用“JScript+ActiveX 插件”技术方案,实现浏览器对客户端读卡器的访问。关键词:B/S 架构;读卡器;Jscript;ActiveX 插件Research and Implementation of Browser-side Access to Local CardReader Based on B/S ArchitectureQIAN Wen-ting(Taizhou M&E Higher Vocational School, Taizhou 225300, China)Abstract:The “Jscript+ActiveX plug-in” technic scheme, adopt to implement browser access client card reader based onB/S architecture, is introduced.Keywords:B/S architecture;card reader;Jscript;ActiveX plug-in0 引言会员制是当前很多企业所采用的主流营销策略实现,所以根据随机光盘中的 Demo,首先设计了一个名为 ClsReadICCard 的类,在类内实现对读卡器的密码验证、读、写和鸣叫等功能,然后在相应的页面内通过调用该类来实现业务逻辑的处理。1.2 使用“JScript+ActiveX 插件”的方案JScript 脚本语言是微软开发的, 它与 JavaScript语法非常类似,VS2005 开发环境中支持 JScript 脚本之一。随着网络的普及,基于 B/S 架构的信息管理系统将成为各企业今后进行信息化平台开发时理想的架构选择。笔者在参与靖江工人国际影城的信息化平台建 设过程中, 将会员管理系统规划成一个 B/S 架构的网 站,在 VS2005 开发平台上使用 C# 编程语言进行开发; 会员卡则选择了 S50 型的 M1 卡, 该卡属于非接触式、 可读写的 IC 卡。 介绍在这样的开发环境下,工作在客 户端的浏览器对本地 IC 读卡器访问的技术实现。1 访问技术程序的开发。在 VS2005 中添加一个基于 “JScript 文件”模板的文件,根据帮助文档和 Demo 完成几个通过读卡器对 IC 卡进行读写的函数,然后在相应页面内包含该文件,并调用相关函数实现业务逻辑的处理。1.3 方案的选择通过调试和论证,第一种方案无法实现对客户端 读卡器的访问,它访问的只是安装在 Web 服务器上的读卡器,因为类代码在.Net 平台下, 经过编译后变成 了动态连接库文件, 这个代码只能在服务器段运行,而不是由浏览器来解释, 所以不能达到预想的要求。第二种方案中使用的是 JScript 脚本语言,这种语言与 JavaScript 类似,是一种客户端的脚本语言,代码首先 被下载到客户端, 然后由浏览器来负责解释执行,所 以最终访问的是安装在客户端的读卡器。2 JScript 脚本的设计借助读卡器完成对 IC 卡访问的过程分 4 步: 初 始化读卡器、初始化卡信息、读写 IC 卡、关闭设备。配合所采用的 IC 卡,选择由深圳德卡科技有限公司出品的 D3 型读卡器。B/S 架构的应用程序是不能通过客户端浏览器来直接控制客户端硬件设备的,简 单的办法是借助 ActiveX 插件来完成 (这个插件在读卡器的随机光盘中可以找到,只需在客户端注册一下即可)。1.1 使用“类+ActiveX 插件”的方案ASP.Net 平台下开发首选采用面向对象的方法来作者简介:钱文婷(1985-),从事计算机专业程序设计类课程的教学,研究方向为机电产品开发和软件设计。收稿日期:2012-10-08图1写卡流程以 写 卡 为 例 ,在 JScript 文件中编写一个名为 密码验证方式st = rd.dc_authentication(4, Sector); /验证密码rd.put_bstrSBuffer_asc = Info; /置写入数据st = rd.dc_write(DataBlock);/写数据 st = rd.dc_exit();/关闭端口和设备 document.getElementById(ReturnData).value= 写卡成功;ReadInfo();/读取 IC 卡信息其他功能函数用类似的方法完成设计。 代码中的rd 是在页面上通过 object 标记引用 ActiveX 组件而定 义的读卡器对象,具体定义的 HTML 代码为:3 功能页面的设计3.1 页面设计以对 WriteInfo 函数的调用为例,此函数在制作会 员卡功能页面中被调用,该页面的运行效果如图 2 所 示。WriteInfo 的函数,该函数的具体功能是实现将页面上的会员类型和会员号写入 IC 卡,流程如图 1 所示。参考帮助文档中的驱动程序函数说明,结合流程图和 IC 卡的设计,完成 WriteInfo 函数,核心代码和注 释为(代码中忽略了部分异常判断):function WriteInfo()var st; /主要用于返回值var lSnr; /本用于取序列号,但在 javascript 只是当成 dc_card 函数的一个临时变量var Sector;/扇区var DataBlock;/块号var Info; /需要写得数据document.getElementById (ReturnData).value = ;/清空页面上的提示信息 Sector=2; /扇区号 DataBlock=10;/块号Info=XXXXXX; /写入数据,根据会员类型和会 员号进行拼接st = rd.dc_init(100, 115200); /初始化端口和设备if(st 将 OnClientClick 事件绑定到按钮上的方法有两 种 : 直 接 在 asp:Button 对 象 中 添 加 属 性 “On- ClientClick=WriteInfo() ”; 采用代码进行绑定 , 具体 是 在 页 面 的 Page_Load 事 件 中 添 加 语 句 “this.Cmd-Save.Attributes.Add(onclick, WriteInfo(););”。3.3 业务逻辑处理代码的编写而第二个过程则是处理返回数据,语言编写。该代码用 C# 编程ASP.Net 平 台 中 的 标 准 按 钮 Button 支 持 两 个 事件:OnClientClick 和 OnClick。 其中 OnClientClick 是客读写 IC 卡的代码已在 JScript 脚本中实现,而对户端的事件方法 ,可以实现 对 JScript 函 数 的 调 用 ;于业务逻辑代码的编写,在这个页面中主要是将页面上名为 ReturnData 控件里的卡内信息分解后显示,具 体显示位置在该页面的下半部分。OnClick 是服务器端的事件方法, 可以实现用 C# 语言、 面向对象的方法来完成对业务逻辑的处理。在ASP.Net 的 事件触发机制中 ,OnClientClick 事 件 比OnClick 事件优先触发,这样就可以实现先写、读卡后 分析数据的业务处理顺序要求。对于在页面上的命令按钮,需要将两个事件绑定到该控件上。 首先,在 VS2005 开发环境的属性窗口的 事件列表中双击“Click”事件,即可完成 OnClick 事件 的绑定,切换到 HTML 源代码视图,对应的代码为:asp:Button ID = CmdSa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论