操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

NTKO安全签名印章系统Web(HTML)版本集成架构

2008-3-27 发布方:ntko 网友评论 0 条 点击进入论坛
1、NTKO安全签章系统WEB版本体系介绍
    NTKO安全签名印章系统WEB版本由两部分组成:
    • NTKO安全签名印章系统Helper控件(NTKO WebSignHelper 控件);
    • NTKO安全签名印章系统签章控件
    Helper控件负责在网页上创建签章控件,并调用签章控件的方法实现签章。后者是签章的实现控件。另外,Helper控件还负责将网页上已经存在的签章控件的数据保存到WEB服务器,以及从WEB服务器装载所有的签章数据,并在网页上恢复所有签章。
    您在编程中直接使用到的一般是NTKO安全签名印章系统Helper控件(NTKO WebSignHelper 控件)的属性和方法,以及签章控件的WebSignInfo属性。
2、编程简要说明
    要正确使用NTKO安全签名印章系统WEB版,一般的过程如下:
    • 调用Helper对象的AddSecSignOcx方法创建一个对象,并获取返回的签章对象;
    • 设定签章对象的WebSignInfo属性,从而指明该签章验证的网页域;
    • 将签章对象作为第一个参数,调用Helper对象的AddSecHandSign、AddSecSignFromLocal,AddSecSignFromURL或者AddSecSignFromEkey方法,进行签名或者盖章;
    • (可选)读取Helper对象的SignsCount属性,获得签章数量,保存到表单的隐藏域;
    • 调用Helper对象的SaveToURL方法,将签章数据保存到WEB服务器。
    • 打开网页的时候,在onload事件中,调用Helper对象的LoadFromURL方法,将签章数据装载到WEB网页。
    简单示例:
      function AddSecHandSign()
      {
      var secSignObj = ntkoobj.AddSecSignOcx("SecHandSignID",200,300);
      secSignObj.WebSignInfo = WebSignInfo;
      ntkoobj.AddSecHandSign(secSignObj,'测试用户');
      }
    上面的方法是进行手写签名。其中,ntkoobj是Helper对象,而secSignObj是新增的签章对象。
3、网页中必须包含的js文件
    因为NTKO安全签名印章系统WEB版本需要调用一个js文件中的固定名称的JavaScript Function来创建印章并完成签章工作,因此,需要在网页的和标记之间,使用:
    来引入一个系统所需的NtkoAddSecSign .js文件。这个文件您最好不进行任何修改。除了必须的时候修改编码方式。
    和网页在同一目录的NtkoAddSecSign .js文件的内容如下:[注意js的编码方式必须和网页的编码方式一致,请参考相关示例目录下的NtkoAddSecSign .js文件]
      //注意:这是内部需要使用的函数,不能修改
      function NtkoReserved_AddSecSignOcx(ControlID,ocxLeft,ocxTop)
      {
      var ocxElement = document.createElement('object');
      document.body.appendChild(ocxElement);
      if("string" == typeof(ControlID))
      {
      ocxElement.id = ControlID;
      }
      ocxElement.style.position = "absolute";
      ocxElement.style.pixelLeft = ocxLeft;
      ocxElement.style.pixelTop = ocxTop;
      ocxElement.classid= "clsid:AA4B3728-B61C-4bcc-AEE7-0AA47D3C0DDA";
      ocxElement.width = "10";
      ocxElement.height = "10";
      return ocxElement;
      }
      function NtkoReserved_RunSignHelper(ocxElement,UserName,FileName,PromptSelect,
      PrintMode,IsUseCertificate,IsLocked,IsCheckDocChange,
      IsShowUI,SignPass,SignType)
      {
      if("object" != typeof(ocxElement)) return;
      ocxElement.SetUser(UserName);
      switch(SignType)
      {
      case 0:
      {
      try
      {
      ocxElement.DoSign(FileName,PromptSelect, SignPass, PrintMode,
      IsUseCertificate, IsLocked,IsCheckDocChange,IsShowUI);
      }
      catch(err)
      {
      alert("加盖印章错误!");
      ocxElement.Close();
      ocxElement.removeNode();
      }
      }
      break;
      case 1:
      {
      try
      {
      ocxElement.DoHandSign(PrintMode,IsUseCertificate,IsLocked,IsCheckDocChange,IsShowUI);
      }
      catch(err)
      {
      alert("手写签名错误!");
      ocxElement.Close();
      ocxElement.removeNode();
      }
      }
      break;
      case 2:
      {
      try
      {
      ocxElement.DoSignFromEkey(SignPass,PrintMode,IsUseCertificate,IsLocked,IsCheckDocChange,IsShowUI);
      }
      catch(err)
      {
      alert("加盖印章错误!");
      ocxElement.Close();
      ocxElement.removeNode();
      }
      }
      break;
      default:
      {
      try
      {
      ocxElement.DoSign(FileName,true, SignPass, PrintMode,
      IsUseCertificate, IsLocked,IsCheckDocChange,IsShowUI);
      }
      catch(err)
      {
      alert("加盖印章错误!");
      ocxElement.Close();
      ocxElement.removeNode();
      }
      }
      break;
      }
      }
已有 0 位对此文章感兴趣的网友发布了看法