为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

身份认证系统

2017-09-02 47页 doc 208KB 111阅读

用户头像

is_729658

暂无简介

举报
身份认证系统身份认证系统 摘 要 北京人文大学的身份认证系统主要是集成当前各种登录模式,进行登录。本系统的可 以很方便的一直到各个信息化系统。可以为人文大学的信息化身份验证提供参考。身份认 证系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采 用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大 的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。运行结果证明,本津身份认证系统极大提高了工作效率,节省了人力和物力,最终满足北京人文大学 的身份认证...
身份认证系统
身份认证系统 摘 要 北京人文大学的身份认证系统主要是集成当前各种登录模式,进行登录。本系统的可 以很方便的一直到各个信息化系统。可以为人文大学的信息化身份验证提供参考。身份认 证系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采 用Access数据库。VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大 的优点。 Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。运行结果证明,本津身份认证系统极大提高了工作效率,节省了人力和物力,最终满足北京人文大学 的身份认证管理的需要,同时也成为现代管理的标志。本系统的创新点是提供了动态口令 认证以及验证码身份认证等功能。 关键词:验证码认证;动态口令认证;access ;vb ABSTRACT Beijing University of Humanities is an integrated authentication system is mainly various current log mode to log on. This system can be very easily have been to every information system. For Humanities University of authentication information for reference. Authentication System is a typical management information system (MIS), foreground program development tools using Microsoft VB6, back-end database using Access database. VB6 is an object-oriented development tools, with components rich in language simple, powerful advantages. Access database with VB6 with a seamless connection, simple operation, easy to use. Running results show that this Tianjin authentication system greatly improves work efficiency, saving human and material resources, and ultimately to meet the Beijing University of Humanities identity management needs, but also become a symbol of modern management. The innovation of this system is to provide a dynamic password authentication, and authentication code functions. Keywords: code certification dynamic password authentication ;access vb 目 录 第一章 引言 ……………………………………………………………….……….....1 第一节 VB简介 ………………………………………………………………..1 第二节 Access2000简介 ……………………………………….………………3 第三节 系统简介 ………………….……………………….…………………….4 第四节 开发环境 ………………….………………..………………………….4 第二章 系统设计 …………………………………….……………………………….5 第一节 需求分析…………………………………….…………………………….5 第二节 功能模块 …………………………………………………………………5 第三节 系统性能 ……………………………………….……………………….6 第四节 界面需求分析 ……………………….………...………………………..7 第五节 系统数据库设计 ………………….……………………………………9 第六节 可行性分析 ……………….………………………………………….10 第三章 系统程序设计 ……………………………………………………………….11 第一节 系统重点难点程序设计 …………..………………………………...11 第二节 菜单模块详细设计 …...………………………………………………..13 第三节 系统子模块详细设计 ….……………………………………………...14 第四节 动态口令子模块详细设计 ….…………………………………………16 第五节 切换用户子模块详细设计 ……………………………………………19 第六节 子模块编写要点 ………………………………………………………..27 第四章 系统评价 ……………………………………………………………………29 第五章 系统测试 ……………………………………………………………………30 致 谢 ………………………………………………………………………………….32 参考文献 ……………………………………………………………………………..33 第一章 引言 第一节 VB简介 Visual意为“可视化的”,指的是一种开发图形用户界面的,所以Visual Basic是基于Basic的可视化的程序设计语言。在Visual Basic中,一方面继承了Basic所具有的程序设计语言简单易用的特点,另一方面在其编程系统中采用了面向对象、事件驱动的编程机 制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视 化程序设计方法。功能特点: 一.具有面向对象的可视化设计工具 在VB中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一 个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在 屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程 序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提 高。 二.事件驱动的编程机制 事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由 用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只 要编写响应用户动作的代码,而各个动作之间不一定有联系。 三.提供了易学易用的应用程序集成开发环境 在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编 译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。 四.结构化的程序设计语言 VB具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一 些特点: 强大的数值和字符串处理功能 ,丰富的图形指令,可方便地绘制各种图形 ,提供静态和动态数组,有利于简化内存的管理,过程可递归调用,使程序更为简练 ,支持随机文件和顺序文件的访问 ,提供了一个可供应用程序调用的包含多种类型的图标 库 ,具有完善的运行出错处理 ,支持多种数据库系统的访问 ,利用数据控件可访问的数据库系统有:Microsoft Access、Btrieve、DBASE、Microsfot FoxPro和Paradox等,也可 1 以访问Microsoft Excel、Lotus1-2-3等多种电子表格。支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术 五.完备的HELP联机帮助功能 与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。VB帮助窗口中显示了有关的示例代码,通过复制、粘 贴操作可获取大量的示例代码,为用户的学习和使用提供了极大的方便。 VB程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何 事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执行是由外来事件 决定的。因此是“事件”驱动的。编写VB程序较为简单,首先将各个对象放在空白窗体 上,然后将程序代码分别添加给对象或图标,将它们组合起来就可以随意运行了。在VB中,窗体实际上是一个对象,VB的窗体含有许多内嵌特性,这使得用户界面部分的建立 像是从一个中挑选一个个合适的控件,而不是从零开始一步一步地建立控件。这种开 发者能亲眼看到的程序设计过程就是“可视化程序设计”(Visual Programming) 六.VB中的基本概念 对象:面向对象编程(OOP)的提法大家一定也很耳熟,虽然Visual Basic并不是完全的面向对象编程,但也利用了对象编程技术。对象简单地说就是大家经常看到的各种窗 口、按钮、文本框甚至打印机等。 属性:如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。 不同对象的属性可能不同。属性一般决定了对象的位置、大小、显示等情况。 方法:就是对象能够做的事,如打印机对象就有打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。 事件:就是对象对用户各种操作的反映情况。如用户用鼠标按一下按钮,就会触发按 钮的“按”(Click)事件。 控件:控件就是Visual Basic提供的编程用的模块,与对象有直接的联系,如同积木 的木块,使用这样的控件,就可以像拼图或堆积木一样“搭”、“拼”你的程序界面。Visual Basic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。每个控件都有各自的属 性、事件及方法。只需修改这些特征你就可以随心所欲地编程了。最重要的是,你可以利 用成千上万的各种扩充的控件来快速构造几乎能满足你任何要求的程序。例如,如果你不 满意Windows简陋的媒体播放器,你就可以使用VB的多媒体控件在1小时以内设计一个 2 完全自己风格的能够播放CD、VCD的多媒体播放器,而功能完全与之相当。 第二节 Access2000简介 作为Microsoft的office套件产品之一,access已经成为世界上最流行的桌面数据库 系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对 其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,Microsoft FoxPro)和服务器、小型机及大型机上的许多SQL数据库。Access还完全支持Microsoft的OLE技术。 Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功 能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的!如果您能给 它加上简短的VBA代码,那么您的程序决不比专业程序员潜心开发的程序差。Access的总体结构,Access将所有有名字的东西都成为对象(object),在Access 2000中,最重要的对象有表,查询,窗体,报表,宏和模块。表用户定义的存储资料的对象。每一个表都 包含有关某个主体的信息。表包括存储不同种类资料的字段(列),而记录(行)则收集 特定主体实例的所有信息。 查询为来自一个或多个表的资料提供定制视图的对象。在Access中,可以利用图形化的实例查询机制(QBE)或通过SQL语句来建立查询。你可以在查询中选择、更新、插入 或删除资料,也可以用查询来建立新表。 窗体窗体是主要的人机接口。大量的操作(几乎所有)都要通过窗体完成。窗体通过 运行宏(macro)或Visual Basic for Applicatinns(VBA)过程,来响应大量的事件。Access 2000为我们提供了强大的(同时也是相当方便的向导)来建立的Windows窗体。 报表为格式化、计算、打印选定资料而设计的对象。它是衡量一个优秀的数据库的重 要标准(有时甚至是唯一的标准)。 宏为了响应已定义的事件,需要让Access去执行一个或多个操作,而宏就是对这些操 作的结构化的定义对象。它可以让你像堆积木一样建立一个功能强大的程序,而无须写大 量的代码。 3 第三节 系统简介 身份认证管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。最初的 身份认证管理都是使用人工方式处理,工作量大的时候,出现错误的机率也随之升高,不 仅花费人员大量的时间,而且往往由于抄写不慎,或者由于计算的疏忽,出现身份认证处 错误的现象。身份认证管理系统是信息化不可缺少的一部分,它的内容对于信息化管理来说都至关重要,所以身份认证管理系统应该能够为用户提供充足的信息和快捷的查询。但一直 以来人们使用传统人工的方式身份认证管理系统,这种管理方式存在着许多缺点,如:效率 低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学的日渐成熟,其强大的功能已被人们深刻地认识和使用,它已进入人类社会的各个领域并发挥着越来越重要的作用。由此,建立高 性能的身份认证管理系统,作为计算机应用的一部分,使用计算机对用户身份进行管理,具 有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密 性好、寿命长、成本低等。 第四节 开发环境 由于条件限制,本系统使用的是个人电脑开发。软硬件的参数如下 CPU>=奔腾3 主频>=900MHZ 内存>=32MB 硬盘>=20GB 使用Win98、Win2000 Professional、Win2000 Server、Win XP等操作系统。数据库使用ACCESS 2000 4 第二章 系统设计 第一节 需求分析 需求分析的过程可以说是一个对具体问的反复理解和抽象的过程。理解就是对现实问 题的理解,要弄清楚究竟需要解决什么问题。抽象就是除去问题的表面,提取问题的本质, 建立问题的逻辑模型,以便于以后阶段的系统的设计实现。需求分析阶段是软件产品生存命 期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。所谓需求是指用户对软件 的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能,达到什么性能。 通常需求分为两种类型:一种是功能性需求,一种是非功能性需求,这一点也需要有一种清 楚的认识。功能性需求是指需要计算机系统解决的问题,也就是对数据的处理要求,这是一 类最主要的需求。非功能性需求是指实际使用环境所要求的需求,往往是一些限制要求,例 如:性能要求,可靠性要求,安全保密要求,等等。 软件需求一般包含三个层次—业务需求、用户需求和功能需求,还包括非功能需求。业 务需求:反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文 档中予以说明。用户需求:描述了用户使用产品必须要完成的任务和具备的功能,这在使用 实例文档或方案脚本说明中予以说明。功能需求:定义了开发人员必须实现的软件功能,使 得用户能完成他们的任务,从而满足其业务需求。 第二节 功能模块 开发这个系统的目的就是帮助提高北京人文大学的信息化,实现管理的系统化、化 和自动化。系统最终实现的主要功能如下。添加用户,修改密码,切换用户, 用户认证,根 据用户权限实现不同的操作,验证码功能,动态口令验证,退出系统。 5 第三节 系统性能 一、实用性要求 要求所需业务能实时处理,数据集中管理,充分利用系统资源。 二、高效率要求 ?确保每次操作数据及时传递到数据库中。 ?确保每次查询速准确,在技术上优先考虑系统的可靠性,保证系统具有良好的容错性。 ?保证系统的功能正常。 三、先进性要求 在系统的建设中,要在有经济条件的前提下多采用适用的先进技术,以保证系统的后继 建设能够顺利进行,保护系统的有效性。 四、安全性要求 身份认证系统具有特殊性和重要性,系统应对登录口令采取安全保护措施。通过数据库 本身安全机制、系统的安全设置、严格管理等多种技术和管理手段,保证数据的使用安全。 作为系统本身,最宝贵的财富就是在系统中存储的数据,应建立有效、快速的数据备份和恢 复系统,保证数据的存储安全。 五、灵活性与易维护要求 在考务管理系统的设计中应充分考虑系统的灵活性和可扩展性。系统的维护都不应对系 统的运行造成太大影响。 六、可扩展性要求 系统设计时,从系统的功能和结构设计都充分考虑这一需求,保证系统的扩展和维护。 建设易于扩展的系统结构,保证系统的扩展和维护。 七、界面要求 界面友好,操作简单方便。保证用户输入数据时操作简单方便,并且在安排考试时操作 简单、方便、快捷。广泛使用操作向导,使教务员不必记住复杂的操作流程,就可以进行操 作。 用户界面是一个应用程序很重要的一面——它直接影响程序的使用价值。对于大多数用 户来说,用户界面就是他们对一个产品的全部的了解。所以对他们来说,一个内部设计良好 但用户界面不好的应用程序就是一个不好的程序。一个应用程序的用户界面框架是决定它的 6 商业价值的重要因素。 什么是优秀的用户界面?说到底一句话:一个优秀的用户界面即是一个直观的、对用户 透明的界面:用户在首次接触了这个软件后就觉得一目了然,不需要多少培训就可以方便地 上手使用,而且用户在使用过程中甚至会获得愉悦快乐的心情。说起来很简单,可是在实际 开发中,真正能够做到这一点却很不容易。要想设计优秀的图形用户界面,应该在软件的设 计开始,也就是需求分析阶段就予以足够的重视。 第四节 界面需求分析 一、界面元素 通常一个软件界面的元素包括界面主颜色、字体颜色、字体大小、界面布局、界面交互 方式、界面功能分布、界面输入输出模式。其中,对用户工作效率有显著影响的元素包括: 输入输出方式、交互方式、功能分布,在使用命令式交互方式的系统中,命令名称、参数也 是界面元素的内容,如何设计命令及参数也很重要。影响用户对系统友好性评价的元素则有: 颜色、字体大小、界面布局等,这种划分不是绝对的,软件界面作为一个整体,其中任何一 个元素不符合用户习惯、不满足用户要求都将降低用户对软件系统的认可度,甚至影响用户 的工作效率,而使用户最终放弃使用系统。围绕界面元素所要达到的设计目的是让最终用户 能够获得美感、提高工作效率、易于操作使用系统。目前在界面元素的选择、布局设计等方 面的研究进行得较多,内容涵盖了可用性工程学、人机工程学、认知心理学、美学、色彩理论等方面的探讨。 二、用户角色 界面需求分析必须围绕用户为中心,不同于客观功能需求分析,具有很大的主观性。虽 然,界面设计人员可以按照通行的原则来设计,但是用户个体的文化背景、知识水平、个人 喜好等是千差百异的,其界面需求也是相差很大。不同的用户,对软件界面有不同的要求, 表达自己要求的方式也尽不相同。而且用户的界面要求通常不象业务功能需求那样容易明确、 有据可查、可以利用专门工具进行分析。多数用户往往并不能提出明确的、全局的界面需求, 其需求同自身主观因素联系紧密,是模糊、变化的。调查用户的界面需求,必须先从调查用 户自身特征开始,将不同特征用户群体的要求进行综合处理,再有针对性地分析其界面需求。 三、需求变化 7 我们知道用户对于界面通常只能提出基本的要求,而且提出的要求也不一定科学,因此 如何诱导用户在项目进行中尽早明确自己的需求,是任何需求分析人员都会面临的问题。 用户根据自己想象中的理想系统向分析开发人员提出自己的要求。开发方实现目标后交 给用户,在系统实施运行后,用户将实际目标系统同自己想象中的理想系统对比,同时目标 系统的使用会刺激用户修正想象中的理想系统,然后提出新的需求。由于软件界面的评审因 素同用户的心理状况、认识水平有很大关系,所以对于软件界面,用户只有在使用过之后才 能知道是否符合自己的操作习惯,颜色、字体等界面元素是否满足自己的要求,从而提出更 明确的要求。 四、界面原型 由于在软件开发前期,用户的界面需求很模糊,甚至没有自己的理想模型,用户提出的 要求就很难量化,结果很容易被需求分析人员忽略。因此在用户角色定义完成后应用快速原 型法来设计用户界面,可以帮助用户尽快完善自己的理想模型。 利用界面原型可以将界面需求调查的周期尽量缩短,并尽可能满足用户的要求。快速原 型法是迅速地根据软件系统的需求产生出软件系统的一个原型的过程,其主要好处是可尽早 获得更完整、更正确地需求和设计。利用界面原型,用户可以很感性地认识到未来系统的界 面风格以及操作方式,从而迅速作出判断:系统是否符合自己的感官期望,是否满足自己的 操作习惯,是否能够满足自己工作的需要。需求分析人员可以利用界面原型,诱导用户修正 自己的理想系统,提出新的界面要求。因此,界面需求分析的步骤可为:确定所涉及的界面 元素,分析用户特征并定义用户角色,依据用户角色的界面需求设计界面原型并不断改进完 善。 设计界面的常见原则包括: 简易性。界面的简洁是要让用户便于使用、便于了解、并能减少用户发生错误选择的可 能性。用户的语言。界面中要使用能反应用户本身的语言,而不是设计者的语言。要选择主 动式语言而非被动式。记忆负担最小化。人脑不是电脑,在设计界面时必须要考虑人类大脑 处理信息的限度。人类的短期记忆极不稳定、有限,24小时内存在25%的遗忘率。所以对用 户来说,浏览信息要比记忆更容易。 一致性。是每一个优秀界面都具备的特点。界面的结构必须清晰且一致,风格必须与内 容相一致。 清楚。在视觉效果上便于理解和使用。 8 用户的熟悉程度。用户可通过已掌握的知识来使用界面,但不应超出一般常识。 从用户的观点考虑。想他们所想,做他们所做。用户总是按照他们自己的方法理解和使 用。通过比较两个不同世界(真实与虚拟)的事物,完成更好的设计。 排列。一个有序整齐的界面能让用户轻松的使用。 安全性。用户能自由的作出选择,且所有选择都是可逆的。在用户作出危险的选择时有 信息提示。 灵活性。简单来说就是要让用户方便的使用,但不同于上述。即互动多重性,不局限于 单一的工具(包括鼠标、键盘或手柄)。 人性化。高效率和用户满意度是人性化的体现。应具备熟练用户和生疏用户两种界面, 即用户可依据自己的习惯定制界面,并能保存设置。 北京人文大学身份认证系统界面设计严格按照了如上的设计要求。所以具有美观的效果, 并方便以后的维护。 第五节 系统数据库设计 数据库的选择Access与许多优秀的关系数据库一样,可以让人很容易地连接相关的信息 而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如dBASE,Paradox,Microsoft FoxPro)和服务器、小型机和大型机上的许多SQL数据库。Access还完全支持Microsoft的OLE技术。Access还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:不用写一行代 码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序。故而本系 统选择ACCESS数据库。数据库是信息管理系统的后台,存储着所有的信息,在信息管理系 统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数 据库设计,可以提高数据信息的存储效率,确保数据信息的完整性和一致性。启动Access 2000,创建新的数据库,命名为loginSys.mdb保存在要存放这个系统所有工程文件的文件夹 中。在使用的时,要把应用程序和这两个数据库保存在同一个文件夹中。数据字典如下: 字 段 类 型 长 度 是否空 说 明 id 自动编号 长整型 不能空 记录编号 userid 文本 50 不能空 用户名 9 userpwd 文本 50 不能空 密码 did 自动编号 长整型 不能空 记录编号 duserid 文本 50 不能空 用户名称 dclass 文本 1 不能空 用户类型 duserpwd 文本 50 不能空 用户密码 class 文本 1 不能空 用户类型 第六节 可行性分析 本系统开发主要包括后台数据库的建立与维护以及前端应用程序的开发两个方面。对于 前者要求建立起数据一致性和完整性强,数据安全性好的库。而对于后者则要求应用程序功 能完备,使用灵活等特点。 因此本系统建议使用Win98、Win2000 Professional、Win2000 Server、Win XP等操作系统,数据库使用MS ACCESS 2000。开发工具使用Microsoft公司的VISUAL BASIC6.0,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一功能方便而简洁的操纵数据库的 智能化对象。过程中首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。由于时间和能力的原因本系统暂时设计为单 机版本,将来可以升级为网络版。经过可行性的分析(经济可行性,管理可行性,开发技术 可行性)等方面论证了身份认证系统的建立是可行的。 10 第三章 系统程序设计 第一节 系统重点难点程序设计 验证码功能,主要负责动态生成验证码。防止用户恶意登录获取系统数据信息其界面如 下代码如下: Function product_yanzhengma() Dim temp As String Randomize Timer Dim MyNumber(3) As Long Dim i As Integer Dim k As Integer For i = 0 To 3 Do MyNumber(i) = Int(Rnd() * 9) + 1 For k = 0 To 3 If k <> i Then If MyNumber(i) = MyNumber(k) Then Exit For Next k Loop Until k = 4 temp = temp & MyNumber(i) & " " yanzhengma = yanzhengma & MyNumber(i) Next i Label5.Caption = temp End Function 动态密码功能,为用户设置一次性密码,当用户登录成功以后密码变自动销毁,从而保 证了零时用户的需要。代码如下: Private Sub cmdok_Click() If Me.y_class.Text = " Then" 11 MsgBox "请输入该用户的密码", vbOKOnly + vbExclamation, "提示" Me.y_class.Text = "" Me.y_class.SetFocus Exit Sub End If Dim SQL As String Dim rs As New ADODB.Recordset SQL = "select * from passwordinfo where userid='" & Me.sid.Text & "' and userpwd='" & Me.y_class.Text & "'" Set rs = getrs(SQL, "salary") '进行更新 If rs.EOF = False Then MsgBox "该用户动态密码已经存在", vbOKOnly + vbExclamation, "提示" Exit Sub Else SQL = "select class from userinfo where userid='" & Me.sid.Text & "'" Set rs = getrs(SQL, "salary") Dim temp_class As String temp_class = rs.Fields(0) SQL = "insert into passwordinfo (userid,userpwd,class) values('" & Me.sid.Text & "', '" & Me.y_class.Text & "','" & temp_class & "')" ' Me.yg_name.Text = sql Call transactsql(SQL, "salary") MsgBox "该用户动态密码设置成功", vbOKOnly + vbExclamation, "提示" End If End Sub 登录方式切换,主要方便演示,当用户可以任何方式登录,并且自由切换,这就犹如 windows用户切换一样。代码如下: Private Sub check_login_Click(Index As Integer) 12 Unload Me frmChecklogin.Show Exit Sub End Sub Private Sub comm_login_Click(Index As Integer) Unload Me frmlogin.Show Exit Sub End Sub Private Sub ps_login_Click(Index As Integer) Unload Me frmPslogin.Show Exit Sub End Sub 第二节 菜单模块详细设计 在这个项目中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理。 对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。主窗体设计的界 面是用菜单编辑器做的,主要由系统、动态口令管理、切换用户和关于这四个大模块组成。 主窗体是进行相关操作的主界面。在这几个里,管理员有所有的权利进行各种操作。 13 图3-1 主界面 第三节 系统子模块详细设计 选择“系统”—>“添加用户”菜单,在添加用户的窗体里,输入新的用户名称和密码后, 单击“确定”按钮,系统将会添加新的用户。 图3-2 添加用户界面 代码如下: sql = "insert into userinfo (userid,userpwd) values('" & username 14 sql = sql & "','" & password & "')" Call transactsql(sql, "salary") MsgBox "添加成功", vbOKOnly + vbExclamation, "添加结果" username.Text = "" password.Text = "" confirmpwd.Text = "" username.SetFocus 选择“系统”—>“修改密码”菜单,在修改密码的窗体里,输入旧密码和2次输入新密 码后,单击“确定”按钮,系统将会更改当前用户的密码。 图3-3修改密码界面 代码如下: userpassword = newpwd sql = "update userinfo set userpwd='" & newpwd & "'where userid='" & strusername & "'" Call transactsql(sql, "salary") MsgBox "密码已经修改", vbOKOnly + vbExclamation, "修改结果" 15 第四节 动态口令子模块详细设计 选择“动态口令管理”—>“添加动态口令信息”菜单为每个用户设置不同的登录口令, 这种口令只能使用一次,使用完了就作废了,他将自动从数据库清除掉?。 图3-4添加动态密码界面 代码如下: Private Sub cmdok_Click() If Me.y_class.Text = "" Then MsgBox "请输入该用户的密码", vbOKOnly + vbExclamation, "提示" Me.y_class.Text = "" Me.y_class.SetFocus Exit Sub End If Dim SQL As String Dim rs As New ADODB.Recordset SQL = "select * from passwordinfo where userid='" & Me.sid.Text & "' and userpwd='" & Me.y_class.Text & "'" Set rs = getrs(SQL, "salary") 16 '进行更新 If rs.EOF = False Then MsgBox "该用户动态密码已经存在", vbOKOnly + vbExclamation, "提 示" Exit Sub Else SQL = "select class from userinfo where userid='" & Me.sid.Text & "'" Set rs = getrs(SQL, "salary") Dim temp_class As String temp_class = rs.Fields(0) SQL = "insert into passwordinfo (userid,userpwd,class) values('" & Me.sid.Text & "', '" & Me.y_class.Text & "','" & temp_class & "')" ' Me.yg_name.Text = sql Call transactsql(SQL, "salary") MsgBox "该用户动态密码设置成功", vbOKOnly + vbExclamation, "提示 " End If End Sub Private Sub Form_Load() Dim SQL As String Dim rs As New ADODB.Recordset SQL = "select userid from userinfo" Set rs = getrs(SQL, "salary") If rs.EOF = False Then While Not rs.EOF Me.sid.AddItem rs(0) rs.MoveNext Wend 17 rs.Close Me.sid.ListIndex = 0 End If End Sub Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single) End Sub 选择“动态口令管理”—>“查看动态口令信息”菜单可以查看不同用户的动态口令。 图如下: 图3-5动态口令管理界面 代码如下: Function sql_connect() As String sql_connect = "Provider=Microsoft.jet.oledb.4.0;Data Source=" & App.Path & "\salary.mdb" End Function Private Sub DataGrid1_Click() End Sub Private Sub Form_Load() Dim SQL As String Dim rs As ADODB.Recordset SQL = "select userid as 用户名 ,userpwd as 动态密码 from passwordinfo" 18 Set rs = getrs(SQL, "salary") Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.Open sql_connect() Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Properties("Initial Fetch Size") = 2 rs.Properties("Background Fetch Size") = 4 rs.Open SQL, cn, adOpenStatic, adLockOptimistic, adCmdText Set DataGrid1.DataSource = rs End Sub 第五节 切换用户子模块详细设计 选择“切换用户”—>“普通登录”菜单,用户将以普通方式进行登录。图如下 图3-6普通用户登录界面 代码如下: Option Explicit Dim pwdcount As Integer Private Sub cmdcancel_Click() 19 username.Text = "" password.Text = "" End Sub Private Sub cmdok_Click() Dim SQL As String Dim rs As ADODB.Recordset If username.Text = "" Then MsgBox "没有输入用户名称", vbOKOnly + vbExclamation, "警告" username.SetFocus Else SQL = "select * from userinfo where userid='" & username.Text & "'" Set rs = getrs(SQL, "salary") If iflag = 1 Then If rs.EOF = True Then MsgBox "没有这个用户,请重新输入", vbOKOnly + vbExclamation, "警告 " username.SetFocus Else If (rs.Fields(1)) = (password.Text) Then Me.Hide strusername = (username.Text) userpassword = (password.Text) class = rs.Fields(1) frmMain.Show rs.Close Unload Me Else MsgBox "密码不正确,请重新输入", vbOKOnly + vbExclamation, "警告" password.SetFocus 20 password.Text = "" End If End If End If End If pwdcount = pwdcount + 1 If pwdcount = 3 Then Unload Me End If End Sub Private Sub Form_Load() pwdcount = 0 strusername = "" userpassword = "" class = "" End Sub Private Sub Image1_Click() End Sub 选择“切换用户”—>“验证码登录”菜单,用户登录则需要输入验证码图如下。 图3-7验证码登录界面 21 代码如下: Option Explicit Dim pwdcount As Integer Private Sub cmdcancel_Click() username.Text = "" password.Text = "" End Sub Private Sub cmdok_Click() If Text1.Text <> yanzhengma Then MsgBox "验证码输入错误", vbOKOnly + vbExclamation, "警告" Text1.SetFocus Exit Sub End If Dim SQL As String Dim rs As ADODB.Recordset If username.Text = "" Then MsgBox "没有输入用户名称", vbOKOnly + vbExclamation, "警告" username.SetFocus Else SQL = "select * from userinfo where userid='" & username.Text & "'" Set rs = getrs(SQL, "salary") If iflag = 1 Then If rs.EOF = True Then MsgBox "没有这个用户,请重新输入", vbOKOnly + vbExclamation, "警告 " username.SetFocus Else If (rs.Fields(1)) = (password.Text) Then Me.Hide 22 strusername = (username.Text) userpassword = (password.Text) class = rs.Fields(2) frmMain.Show Unload Me rs.Close Else MsgBox "密码不正确,请重新输入", vbOKOnly + vbExclamation, "警告" password.SetFocus password.Text = "" End If End If End If End If pwdcount = pwdcount + 1 If pwdcount = 3 Then Unload Me End If End Sub Private Sub Form_Load() pwdcount = 0 strusername = "" userpassword = "" class = "" product_yanzhengma End Sub Function product_yanzhengma() Dim temp As String Randomize Timer 23 Dim MyNumber(3) As Long Dim i As Integer Dim k As Integer For i = 0 To 3 Do MyNumber(i) = Int(Rnd() * 9) + 1 For k = 0 To 3 If k <> i Then If MyNumber(i) = MyNumber(k) Then Exit For Next k Loop Until k = 4 temp = temp & MyNumber(i) & " " yanzhengma = yanzhengma & MyNumber(i) Next i Label5.Caption = temp End Function Private Sub Image1_Click() End Sub 选择“切换用户”—>“动态口令登录”菜单,用户需要输入动态口令既一次性密码,图 如下。 图3-8动态口令登陆界面 24 代码如下: Option Explicit Dim pwdcount As Integer Private Sub cmdcancel_Click() username.Text = "" password.Text = "" End Sub Private Sub cmdok_Click() Dim SQL As String Dim rs As ADODB.Recordset If username.Text = "" Then MsgBox "没有输入用户名称", vbOKOnly + vbExclamation, "警告" username.SetFocus Else SQL = "select * from passwordinfo where userid='" & username.Text & "' and userpwd='" + password.Text + "'" Set rs = getrs(SQL, "salary") If iflag = 1 Then If rs.EOF = True Then MsgBox "没有这个用户的动态口令,请重新输入", vbOKOnly + vbExclamation, "警告" username.SetFocus Else Me.Hide strusername = (username.Text) class = rs.Fields("class") SQL = "select userpwd from userinfo where userid='" & username.Text & "'" Set rs = getrs(SQL, "salary") 25 userpassword = rs(0) Dim MyCon As ADODB.Connection Set MyCon = New ADODB.Connection MyCon.ConnectionString = sql_connect() MyCon.Open MyCon.Execute ("delete from passwordinfo where userid='" + strusername + "' and userpwd='" + userpassword + "'") frmMain.Show Unload Me rs.Close End If End If End If pwdcount = pwdcount + 1 If pwdcount = 3 Then Unload Me End If End Sub Private Sub Form_Load() pwdcount = 0 strusername = "" userpassword = "" class = "" End Sub Function sql_connect() As String sql_connect = "Provider=Microsoft.jet.oledb.4.0;Data Source=" & App.Path & "\salary.mdb" End Function Private Sub Image1_Click() 26 End Sub 第六节 子模块编写要点 在登录的这个窗体里,我做的特点是:只要在数据库里有用户信息的,都可以登录,然 后显示相关自己的信息,而管理员显示所有的信息。当输入的用户名或密码不正确的时候, 会出提示。 在主窗体的设计中,我在系统的下拉菜单里包括有添加用户、修改密码和退出系统。在 这个模块里普通用户只有修改自己的密码的权利。在添加用户的窗体里:添加3个标签、3 个文本框和2个命令按钮,然后设置它们相关的属性。在修改密码的窗体里:添加了3个标 签,用来显示信息;3个文本框用来输入用户名称和用户密码;2个按钮用来确定和取消操作,然后设置它们的属性。在这个窗体里,我做的特点是:权利分工明确。当管理员进入的时候 他有所有的权利,单击哪个模块就会弹出相对应的窗体。而普通用户则不能,把它进行了权 限设置,会弹出权限的对话框。在添加用户的窗体里,如果输入的用户密码和确认密码不一 致,将出现一个警告对话框. 然后输入与用户密码相同的密码,我这里的密码都是以*的形式表达,是不可见的。添加的用户将保存在数据库的userinfo里。单击“取消”按钮就卸载此窗体,添加用户的过程到 此完成。在修改密码的窗体里,我要注重讲解一下:当输入的旧密码与登录时的密码不一致 将出现提示对话框(如图一),当输入的“确认新密码”和“输入新密码”的密码不一致时也 将出现警告对话框(如图二)。我在做这个窗体时遇到了一个问题:就是输入的新密码确认后, 当你再一次的进入修改密码窗体输入旧密码时,如果输入的是刚刚修改过的密码,就会出现 错误。经过一段时间的思考,我发现原因是修改过的密码没有覆盖登录时的密码,所以会出 现问题。我觉得这是一个很大的问题,在别的书上可能没注意到这一点,所以我要注重的讲 一下,这是我做这个窗体时的最大体会。 在建立基本工资窗体时,这个窗体会在两个地方使用到,一个就是添加,另一个就是修 改,在窗体载入时系统应自动判断状态。选择员工编号或选择职务,然后填写工资金额,单 击“确定”按钮,系统就会按照选择的方式,设置员工的基本工资。在做基本工资这个窗体 时,我的想法是:当你在修改基本工资的信息,首先都要从数据库中调出相关的信息,然后 把它删除掉,再从数据库中的用户信息表中调出所要的信息,然后再一次的添加所要设置的 27 信息。 在建立其他项目设置的窗体时,也在两个地方使用,即添加和修改,在载入时也需要判 断状态。选择编号,再选择需要添加的项目和进额,单击“确定”按钮,即可添加其他项目。 在其他项目设置这个窗体里,我用了一个Frame控件和几个optionButton控件,目的在于: 在添加其他项目时,只能有一个设置是有效的,而且还可以添加其他的项目,还有备注等等, 这些都便于记录。这里还有一个DTPicker控件是用来记录添加其他项目的时间,我觉得这个控件非常好。还有就是每次添加成功后,系统需要初始化,更新一下。在设置完这个窗体后 将会弹出查询工资的窗体。 28 第四章 系统评价 系统评价是对一个信息系统的性能进行全面估计,检查,测试,分析和评审。包括用实 际指标与计划指标进行比较,以确立系统目标的实现程度,同时对系统建成后产生的效益进 行全面的评估。 一、系统性能的评价 系统性能的好坏,直接影响这系统的运行和维护,决定了运行和应用的长期效果,决定 了系统的生命力。因此,系统性能评价是信息系统评价的主要内容。本系统具有系统效率高, 可维护性,可靠性强的特点,可扩充的程度高,系统安全保密且可移植。能够充分的适应学 校的发展和每天事务的进行。本系统的投入运行基本满足了北京人文大学信息化的要求,并 能使其取得明显的经济和社会效益。运行状态平稳表明系统的各项指标达到了设计的要求。 二、系统效益的评价 系统运行的好坏,不仅和系统的性能有关,更要看系统给组织的决策和人员的行为带来 的影响。这些影响可从两个方面进行评价,直接经济效益,和间接的经济效益。本系统的投 入运行,改进了组织结构及运行方式,提高了人员的素质,使成本下降,方便了学校。尽管 间接的经济效益难以估计,但是对学校的工作效率有很大的提高。 29 第五章 系统测试 系统测试应该由若干个不同测试组成,目的是充分运行系统,验证系统各部件是否都能 正常工作并完成所赋予的任务。这里所谓的系统不仅仅包括软件本身,而且还包括计算机硬 件及其相关的外围设备、实际运行时大批量数据、非正常操作(如黑客攻击)等。通常意义上 的系统测试包括压力测试、容量测试、性能测试、安全测试、容错测试等 压力测试(s"esstest):也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环 境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、 可靠性、稳定性等。压力测试的目的就是在软件投入使用以前或软件负载达到极限以前,通 过执行可重复的负载测试,了解系统硼J靠性、性能瓶颈等,以提高软件系统的可靠性、稳 定性,减少系统的宕机时间和因此带来的损失。 容晕测试(c印ac时test):预先分析出反映软件系统应用特征的某项指标的极限值,如某 个web站点可以支持多少个并发用户的访问量、网络在线会议系统的与会者人数。知道了系 统的实际容量,如果不能满足要求,就应该寻求新的解决方案, 以提高系统的容量。若一时没有新的解决方案,就有必要在产品发布说明书上明确这些容量的限制,避免引起软件产品 使用上的纠纷。如果实际容量已满足要求,就能帮助用户建立对产品的信心。 性能测试(pe晌nllance test):通过测试确定系统运行时的性能表现,如得到运行速度、响 应时间、占有系统资源等方面的系统数据。对丁那些实时或嵌入式系统,系统有时满足了功 能要求,但未必能够满足性能要求,如某个}{_9站可以被访问, 而且司以提供预先设定的功能,但每打开一个页面都需要1~2分钟,用户不可忍 受,其结果没有用户愿意使用这个网站所提供的服务。 安全测试(securhyten):检查系统对非法侵入的防范能力。安全测试期间。测试人员假扮 非法入侵者,采用各种办法试图突破防线。系统安全设计的准则是,使非法侵入的代价超过 被保护信息的价值。 容错测试(recovervtest):主要检查系统的容错能力。当系统出错时,能否在指定时间间隔 内修正错误并重新启动系统。容错测试首先要通过各种手段,让软件强制性地发生故障,然 后验证系统是否能尽快恢复。对于自动恢复需验证熏新初始化、检查点、数据恢复和重新启 动等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定是否在可接受 的范围内。 30 本系统严格按照这几种方式进行测试,保证了系统的安全性与可靠性。测试小结然而, 软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相 对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。所 以后期还要进行大量的维护。 31 致 谢 本论文是在老师的悉心指导和无微不至的关心下,由本人独立完成。从论文的选题、 开题、研究内容的构架、到论文的撰写和定稿过程,周老师都是仔细审阅和严格把关,使 我在四年年的学习期间,不仅学到了许多科学研究方法,而且也懂得了很多做人的道理。 导师不但把渊博的知识无私地传授给了我,而且通过言传身教,用她严谨治学、实事求是 的科研作 风潜移默化地影响了我,她高尚的学术风格、博大的处世胸怀、平易近人的工 作作风将对我今后的教学和科研工作产生深远的影响,在此向导师表示最诚挚的感谢。 感谢老师,对于在我论文构思过程中的困惑和VB软 件运用中的疑问能够在百忙之中不厌其烦的解答,您们的悉心指导是我论文质量的保证; 感谢共同生活、学习的同窗好友对我的关心和支持,教室、餐馆、宿舍无不留下我们 的身影和足迹,一次次倾心长谈、一次次激情辩论,是我们友情滋长的温床,他们无不让 我沉浸于经久的幸福与感动中。 32 参考文献 [1]龚沛曾,陆慰民。Visual Basic 6.0程序设计教程。高等教育出版社。2009年5月 [2] Microstft 编著的MSDN – Microstft Developers' Net Work Microstft [J] 2008年 [3] 刘萌,周学明,郭安源。编著的Visual Basic 企业办公系统开发实例导航。人民邮 电出版社。2006年2月 [4]李振亭。编著的Visual Basic程序设计教程。北方交通大学出版社。2006年3月 [5]林永,张乐强。编著的Visual Basic用户编程手册人民邮电出版社。2004年6月 [6]萨师煊,王珊。编著的数据库系统概论。高等教育出版社。2001年5月 [7]孙涌。编著的现代软件工程。北京希望电子出版社。2006年5月 [8] 杨志强。编著 Visual Basic数据库系统开发实例导航。人民邮电出版社。 2005年3月 [9]张学忠,王福成。编著的VB控件应用编程实例教程。北京希望电子出版社。2002年10月 33
/
本文档为【身份认证系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索