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

摘要:
3.我的所有控件都是在解析xml之后动态生成的。(1) 创建部件(您还必须创建输入密码框、按钮和图片显示框)(2)编写部件,新系统。EventHandler(this.SignButton_Click));如果有按钮,则有多个PostBack>原始控件需要在每次->将覆盖控制->尽管从理论上讲,动态创建过程可能会删除刚刚填写的内容。

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

电子签名实现的思路、困难及解决方案第1张电子签名实现的思路、困难及解决方案第2张        /**//// <summary>
电子签名实现的思路、困难及解决方案第3张        
/// 重载:根据xml字符串产生动态控件,显示所有字段
电子签名实现的思路、困难及解决方案第3张        
/// 布局有一些默认属性(不再设为类的属性,那样就要求创建对象并保持)
电子签名实现的思路、困难及解决方案第3张        
/// 根据当前用户决定是否有权限操作operator
电子签名实现的思路、困难及解决方案第3张        
/// ***********下拉列表额外增加了一个空值**********
电子签名实现的思路、困难及解决方案第3张        
/// </summary>
电子签名实现的思路、困难及解决方案第3张        
/// <param name="xmldoc"></param>
电子签名实现的思路、困难及解决方案第3张        
/// <param name="contain"></param>
电子签名实现的思路、困难及解决方案第10张        
/// <param name="top"></param>

电子签名实现的思路、困难及解决方案第11张        static public void CreateControl(string strXml,HtmlContainerControl contain,int top,int left,System.EventHandler SignHandle)
电子签名实现的思路、困难及解决方案第1张电子签名实现的思路、困难及解决方案第2张        
电子签名实现的思路、困难及解决方案第14张{
电子签名实现的思路、困难及解决方案第3张

                调用:

电子签名实现的思路、困难及解决方案第11张XmlPage.CreateControl(xmldoc,DIV2,40,0,new System.EventHandler(this.SignButton_Click));                               //加载改分类的默认属性    
电子签名实现的思路、困难及解决方案第11张

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

免责声明:文章转载自《电子签名实现的思路、困难及解决方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【实践】js实现windows系统日历Qt 设置窗口属性setWindowFlags函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Jenkins系列教程】流水线通过SSH方式操作Git仓库

主旨 实践 Jenkins 流水线使用SSH方式操作 Git 仓库,包含基于 SSH 私钥认证的服务器 准备 需要提前安装 SSH Agent Plugin,可以通过 Manage Jenkins-> Manage Plugins-> Installed 使用 filter 搜索查看是否安装,如没有则通过 Available处搜索安装 使用 本...

洛谷P1968 美元汇率[2017年4月计划 动态规划02]

P1968 美元汇率 题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率。编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值。 输入输出格式 输入格式:输入文件的第一行是一个自然数N,1≤N≤100,表示戴维学习汇率的天数。 接下来的N行中每行是一个自然数A,1≤A≤100...

C# zip文件操作帮助类

原文: https://www.cnblogs.com/sun-shadow/p/9205510.html 但是原文中递归获取文件数据时有问题,做了小改动。 using ICSharpCode.SharpZipLib.Checksum; using ICSharpCode.SharpZipLib.Zip;  /// <summary>...

Ajax取PHP JSON数据并显示

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-sc...

一个漂亮的输出MySql数据库表结构的PHP页面

经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作。 这是一个漂亮的PHP页面,可以自动输出MySql数据库所有表结构,大大方便了文档的编写工作,也同时非常方便编码的时候进行查询。当然在设计MySql数据库表和字段...

input输入框,在手机上,软键盘会将固定定位和绝对定位的按钮顶起,解决办法

原理:通过监听window窗口的高度变化,来控制显示和隐藏按钮 注意:如果是点击键盘上的收起,可以监听到,但是如果是因为input失去焦点,则不会监听到窗口变化,所以我们需要同时判断input失去焦点 html <input type="text" class="input"...