电子签名实现的思路、困难及解决方案

        在办公自动化的流程中希望实现电子签名。         思路:             1、图片的存放:安全起见存放在库中为宜。最好不能被轻易下载。             2、使用的过程:显示一个密码框和“签名”按钮,输入密码并按下按钮后,如果正确,隐藏输入框和按钮,显示图片。             3、我的所有控件都是通过解析xml后动态生成的,签名应该是一个新类别无疑(类别4),它至少得对两个地方增加代码:(1)创建部分(得同时创建输入密码框、按钮、图片显示框)(2)写入部分,得解析出实际的值,存在xml中。         困难之一:图片的存入和取出                 解决:网上的方法很多,改下就行了。我用的显示方法是,图片指向一个链接,该链接返回一个纯图片,因而这个图片不能被保存。         困难之二:动态生成的按钮的响应事件                 解决:在外面写好按钮的处理方法,然后把委托作为参数传递给创建函数。如下

        /// <summary>
        /// 重载:根据xml字符串产生动态控件,显示所有字段
        /// 布局有一些默认属性(不再设为类的属性,那样就要求创建对象并保持)
        /// 根据当前用户决定是否有权限操作operator
        /// ***********下拉列表额外增加了一个空值**********
        /// </summary>
        /// <param name="xmldoc"></param>
        /// <param name="contain"></param>
        /// <param name="top"></param>
        static public void CreateControl(string strXml,HtmlContainerControl contain,int top,int left,System.EventHandler SignHandle)
        {

                调用:

XmlPage.CreateControl(xmldoc,DIV2,40,0,new System.EventHandler(this.SignButton_Click));                               //加载改分类的默认属性

        困难之三:这个比较不起眼,但其实很麻烦。原因:有按钮就有多次PostBack->需要每次都动态创建原来的控件->每次动态创建控件,都会重写控件->                 (1)对于可见的控件,如文本框,虽然理论上讲动态创建过程可能讲刚刚填入的内容抹掉,但实际上没有,Postback前填入的内容依然存在,所以不会有问题。                 (2)对于密码输入框,Postback后内容就消失了,所以无法保存输入的内容。那么,签名的值就很难被保存住。试过很多的方法:用label不行,最后写入时无法取到label的值(被初始的加载语句抹了),用textbox,隐藏的Textbox直接就不会传送到客户端(并非我想象的是一个Hidden的Input)。                 解决:在签名检验成功后,直接对Session中保存的xmldoc进行写,只写签名的值,其它的都不动。最后写入时,跳过签名的类型不管(因为已经写过了)         困难之四:不同的类型的xml切换时会出现控件重叠出现。                 解决:原因比较简单,没有移除上次的内容引起,移除就OK了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏老马寒门IT

jQuery EasyUI 详解

easyui 为创建现代化,互动,JavaScript 应用程序,提供必要的功能。

4571
来自专栏hightopo

基于HT for Web矢量实现2D叶轮旋转

1942
来自专栏更流畅、简洁的软件开发方式

【自然框架】 页面里的父类—— 改进和想法、解释

1、 从Control到GridView继承了多少层? ? (这个图可不是现做的,这是以前为了写QuickPager分页控件而弄的。http://www.cn...

2305
来自专栏Java学习网

Chrome开发者工具的小技巧

 Chrome的开发者工具是个很强大的东西,相信程序员们都不会陌生,不过有些小功能可能并不为大众所知,所以,写下这篇文章罗列一下可能你所不知道的功能,有的功能可...

4174
来自专栏向治洪

ios开发之xcode环境介绍

作为一个刚入门ios开发的人来说,对于ios开发,对于xcode一切都是那么的陌生,那么我们如何开始我们的第一步呢?首先对开发的ide是必须要了解的,其实要对开...

2726
来自专栏用户2442861的专栏

IDEA Intellij小技巧和插件

使用IDEA Intellij已有两年,在此罗列一下在实践中觉得能有效提升开发效率的一些小技巧和插件。  1. 重设移动键 方向键和Home/End键离...

4421
来自专栏老九学堂

超详细的Web 前端知识体系,等你来挑战!

作为苦逼的IT行业,没日没夜的加班,妹纸也少的可怜,就算在一个班办公室或者一个部门,可能也只有一个妹纸,但估计也轮不到你来上,只能眼巴巴的放着光。可是程序猿一直...

4077
来自专栏有趣的django

微信小程序入门(四)

WXSS(WeiXin Style Sheets)是一套样式语言,用于WXML的组件样式

2682
来自专栏Google Dart

AngularDart 4.0 高级-生命周期钩子 顶

Angular创建它,渲染它,创建和渲染它的子项,在数据绑定属性发生变化时对其进行检查,并在将它从DOM中删除之前对其进行销毁。

1181
来自专栏超然的博客

前端基础精简总结

ES5: String、Number、Boolean、Null、Undefined、Object ES6增: Symbol 其中,object为引用,其...

1934

扫码关注云+社区

领取腾讯云代金券