《计算机专业_——毕业论文__基于web的即时聊天系统的总体建设.doc》由会员分享,可在线阅读,更多相关《计算机专业_——毕业论文__基于web的即时聊天系统的总体建设.doc(41页珍藏版)》请在三一办公上搜索。
1、目 录1 引言11.1 课题背景11.2 国内外研究现状11.3 本课题研究的意义21.4 本课题的研究方法22 可行性分析22.1 经济可行性32.2 技术可行性32.3 操作可行性33 需求分析33.1 目的33.2 任务概述43.3 数据描述43.4 功能描述83.5 性能需求133.6 其它要求134 概要设计144.1 总体设计144.2 三层架构的实现154.3 运行设计164.4 出错处理设计164.5 安全保密设计164.6 维护设计165 详细设计175.1 用户登录模块175.2 用户注册模块195.3 个人信息管理模块205.4 收发消息模块225.5 用户查找模块235
2、.6 好友管理模块245.7 创建用户群模块255.8 收发群消息模块285.9 用户群管理模块286 技术支持296.1 AJAX技术29306.3 信息加密317 系统测试337.1 测试的目的337.2 软件测试的意义337.3软件测试的内容347.4 测试方法347.5 系统测试过程357.6 测试结果36结 论37致 谢38参考文献391 引言 课题背景即时通信是一个终端连往一个即时通信网络的服务。即时通信不同于e-mail在于它的交谈是实时的。大部分的即时通信服务提供了presence awareness的特性显示联络人名单,联络人是否在在线与能否与联络人交谈。最早的即时通信软件是
3、ICQ,ICQ是英文中I seek you的谐音,意思是我找你。四名以色列青年于1996年7月成立Mirabilis公司,并在11月份发布了最初的ICQ版本,在六个月内有85万用户注册使用。目前存在各种各样的即时通信工具,它们的各种工作主要还是依赖于专门的客户端程序,在因特网上受欢迎的即时通信服务包含了MSN Messenger、AOL Instant Messenger、Yahoo! Messenger、NET Messenger Service、Jabber、ICQ与QQ。 这些服务有赖于许多想法更久的的在线聊天媒介,如Internet Relay Chat一样知名。1970年代早期,一种
4、更早的即时通信形式是柏拉图系统(PLATO system)。之后在1980年代,UNIX/Linux的交谈实时信息被广泛的使用于工程师与学术界,1990年代即时通信更跨越了因特网交流。 1996年11月,ICQ是首个广泛被非UNIX/Linux使用者用于因特网的即时通信软件。在ICQ的介绍之后,同时在许多地方有一定数量的即时通信 方式发展,且各式的即时通信程序有独立的协议,无法彼此互通。这引导使用者同时执行两个以上的即时通信软件,或者他们可以使用支持多协议的终端软件,如 Gaim、Trillian或Jabber。近年来,许多即时通信服务开始提供视讯会议的功能,网络 (VoIP),与网络会议服务
5、开始整合为兼有影像会议与实时信息的功能。于是,这些媒体的分别变的越来越模糊。 国内外研究现状 国外研究现状当今,国际上对网络通信系统研究的较好的公司有:思科,Sun,MS等公司,思科主要研究的是底层的传输;MS,Sun公司研究的是应用层。其中MS公司 凭借其在操作系统的垄断地位,为了在网络的发展中取得先机,采用了各种各样的手段。但是,其捆绑的MSN,无论从功能上,还是技术上来说,都不算是非常先进的。当然,IE,同样也不是很受人青睐,这让人想起了,当年的网景公司,网景只是生不逢时。MS不择手段的想打跨网景,可见其对网络的重视。如今,Sun公司在网络应用上捷足先登,凭借着Java,Sun在网络的应
6、用上领先于MS。微软,想用同样的办法搞跨对手,因此它拿出了Visual c#,来对抗Java。这些都是在应用层面的开发工具。应用层上的产品就更显种类繁多。ICQ几乎是国际上通用的即时通信工具,由于在我国它的应用不是很广,所以,其原理也很少被介绍。MSN,是MS的产品,同样在国内没什么市场,所以,对其原理,也很少被讨论过。至于IE,是在Visual c+下开发的产品,虽然有严重的安全隐患,不过,至少能在某种程度上代表当今国际研究的水平。此外,国际上出现了新的浏览器Firefox,其性能 据说是远高于ie,也许在网络的天下,Ms又有了更强劲的对手。 国内研究现状国内在应用层上的网络应用软件目前发展
7、异常的火爆,因为我国有着网络应用的最大的市场,现在国内网络的基础性建设发展迅速,应用软件也层出不穷,其中,在 游戏的领域中,网络通信的工作做的不错,如联众游戏平台,还有其他的一些平台,这些平台基本上都是基于VC+的,用的都是Socket通信,但是为了效率,这些平台没有用MFC提供的CSocket类,而是直接用Socket进行通信。所以效率上不错。此外,tencent的即时通信,也是做的很好的,从某中程度上来说,代表了国内最高的水平。 本课题研究的意义基于WEB的即时聊天系统的总体建设的意义是:以信息安全为基础,以数据整合为核心,开发无须专门客户端软件,维护和升级方便,可跨平台操作,任何一台机器
8、只要装有浏览器软件,均可作为客户机来访问系统,具有良好的开放性和可扩充性,可采用防火墙技术来保护系统的安全性,有效地满足了当前用户对Web通信系统的新需求。 本课题的研究方法 系统采用B/S结构进行设计,使用SQL Server 2005构建数据库,并在.NET环境下使用C#语言和,实现简单的即时聊天与用户群的功能。系统中大量使用了AJAX技术,使得页面可以无刷新或者部分刷新,减少网络资源传输,提高用户体验。2 可行性分析可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的
9、开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。2.1 经济可行性主要是对项目的经济效益进行评价,系统作为一个毕业设计,无需开发经费,对于我们在经济上是可以接受的,所以系统在经济上是可行的。2.2 技术可行性技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。首先软件环境都已具备,如,开发用Visual studio 2008,IIS服务器,数据库服务器方面则有SQL Server 2005,均能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。其灵活性、安全性和易用性为
10、数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。2.3 操作可行性目前,大学的校园网路覆盖了教学区和学生区的主要建筑物,从而满足校内各学院,各职能部门,各直属单位上网需求。学校良好的网络设施为开发使用无纸化网络考试系统提供了坚实的基础。综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。3 需求分析 课题目的需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。如果投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳。如果费了很大的精力,开发一
11、个软件,最后却不满足用户的要求,从而要重新来过,这种返工是让人痛心疾首的。比如,用户需要一个for Linux的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件,当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,恨不得找块豆腐一头撞死。需求分析之所以重要,就因为他具有决策性,方向性,策略性的作用,他在软件开发的过程中具有举足轻重的地位。大家一定要对需求分析具有足够的重视。在一个大型软件系统的开发中,他的作用要远远大于程序设计。 任务概述 需达到的目标在当今世界电脑普及的时刻,人们已经习惯用电脑办公交流,
12、即时通信就有着很大的意义,方便用户即时的交流与沟通,但是又不想花费太长时间在客户端下载安装,以及版本更新上,本系统正是根据此需求进行开发的。让用户或者企业能够在不需要专门客户端的情况下,实现即时通信,方便的体验系统最新版本。提高工作效率。 运行环境硬件环境:普通PC机,内存1G,可连接互联网。软件环境: windows XP以上的操作系统,Microsoft Visual Studio 2008,Microsoft Sql Server 2005。 数据描述 实体关系图根据系统的需求和功能划分,可以画出系统的实体-关系图即E-R图,系统实体间的关系主要为用户的好友关系,用户之间发送消息以及用户
13、群和用户之间的关系,详细部分如图描述。用户B群消息用户群用户A消息分组好友发送属于发送1MNNN1NM 用户实体包含多个属性,其中用户名,密码用做身份验证,用户编号作为数据表的唯一标识,用户头像表示用户选择头像的文件名。性别、年龄、血型、职业等做为以及用户其他的基本信息。用户编号用户名密码头像昵称年龄真实姓名性别个性签名毕业学校生肖职业星座个人主页血型个人说明出生日期形象在线状态IP地址图3.2 用户属性用户 好友关系,做为好友多对多的关系,包含编号、好友编号,所属分组、所属用户编号等属性,其中编号做为记录的唯一标识,好友编号与所属用户编号建立了好友关系。好友关系所属分组编号好友编号图3.3
14、好友实体属性编号所属用户编号 消息实体,包含编号、消息内容、发送人编号等属性。其中编号做为记录的唯一标识。发送人编号、消息内容、消息状态和接收人的编号等属性完成消息发送与接收工作。 群成员实体,包含群编号、用户编号、和创建时间属性,其中群编号与用户编号建立了群拥有成员的关系。消息图3.4 消息属性编号发送人编号接收人编号发送时间消息内容消息状态 群成员群编号创建时间用户编号图3.5 群关系属性 用户群实体,包含群编号、群名称和创建者编号等属性。其中群编号做为记录的唯一标识。 群消息实体,包含群编号、发送人编号、消息内容、接收群编号以及已经接收者编号组等属性。用户群群编号创建者编号群简介创建时间
15、图3.6 用户群属性群名称群公告群消息群编号发送时间发送人编号消息内容已经接收者编号组接收群编号图3.7 群消息属性 用户分组实体,包含分组编号、分组名称、所属用户编号等属性。其中分组编号做为记录的唯一标识。 用户请求实体,包含请求编号、请求用户编号,响应用户编号等属性。其中请求编号做为记录的唯一标识。用户分组分组编号所属用户编号排序分组名称创建日期分组类型备注用户请求附加消息响应用户编号请求用户编号附加分组编号图3.9 用户请求属性状态请求编号创建日期 数据表用户信息表:记录了用户的基本信息,包括用户名,密码,头像等信息。表3-1用户信息表字段名字段类型是否为空说明Idint不为空编号Log
16、inNamevarchar(50)可为空用户名Passwordvarchar(50)可为空密码Headvarchar(50)可为空头像Callvarchar(50)可为空昵称Idivarchar(500)可为空个性签名Sexvarchar(50)可为空性别RealNamevarchar(50)可为空真实姓名Ageint可为空年龄Schoolvarchar(50)可为空毕业学校SXvarchar(50)可为空生肖UserWorkvarchar(50)可为空职业Constellationvarchar(50)可为空星座MasterPagevarchar(50)可为空个人主页BloodTypevar
17、char(50)可为空血型Introducetionvarchar(500)可为空个人说明Visualizevarchar(50)可为空形象Brithdaydatetime可为空出生日期Statevarchar(50)可为空在线状态IPvarchar(50)可为空IP地址好友关系表:记录了用户和好友的关系,以及好友的分组情况。表3-2好友关系表字段名字段类型是否为空说明Idint不为空编号BeLongGroupIdint可为空所属组的编号BelongUserIdint可为空所属用户编号FriendIdint可为空好友编号发送消息表:发送的消息存储在数据库中,并且记录时间,发信人和收信人以及消息
18、的状态,包括已读和未读。表3-3发送消息表字段名字段类型是否为空说明Idint不为空编号Contentvarchar(500)可以为空消息内容SendTimedatetime可以为空发送时间BelongSenderIdint可以为空发送人编号BelongReceiverIdint可以为空收信人编号Statevarchar(50)可以为空状态用户群成员表:记录群编号以及在该群众所有用户的编号。表3-4用户群成员表字段名字段类型是否为空说明Idint不为空编号BelongGroupIdint可为空群编号BelongUserIdint可为空群中用户编号CreateTimedatetime可为空创建时
19、间用户群信息表:记录一个群的基本信息,包括公告简介,创建时间,创建人和群的名字等信息。表3-5用户群信息表字段名字段类型是否为空说明Idint不为空编号GroupNamevarchar(50)可为空群名字BelongUserIdint可为空创建人编号GroupCallBroadvarchar(500)可为空群公告GroupInterducevarchar(500)可为空群简介CreateTimedatetime可为空创建时间群消息发送表:记录了群消息的发送与接收情况。表3-6群消息发送表字段名字段类型是否为空说明Idint不为空编号Contentvarchar(500)可为空消息内容Belon
20、gSenderIdint可为空发送人编号BelongGroupIdint可为空群的编号ReceiverArrayvarchar(5000)可为空已经接收者编号组SendTimedatetime可为空发送时间用户组表:记录了用户为好友创建的分组。表3-7用户组表字段名字段类型是否为空说明Idint不为空编号GroupNamevarchar(50)可为空分组的名称BelongUserIdint可为空所属者编号OrderNumint可为空排序CreateDatedatetime可为空创建时间GroupTypevarchar(50)可为空组类型Reamarkvarchar(500)可为空备注用户请求表
21、:当用户添加好友时,将消息保存到这张表中。表3-8用户请求表字段名字段类型是否为空说明Idint不为空编号RequestUserIdint可为空请求者编号AppendToGroupIdint可为空附加到组的编号ResponseUserIdint可为空响应用户编号AppendInfovarchar(500)可为空附加信息CreatTimedatetime可为空创建时间Statevarchar(50)可为空状态 功能描述 功能模块图根据需求分析设计了九大模块,分别为:用户登录模块、用户注册模块、个人信息管理模块、用户查找模块、收发消息模块、用户查找模块、好友管理模块、收发群消息模块和用户群管理模块
22、,各模块的信息由数据库关系关联,通过对其数据库管理操作实现系统的管理。经过分析得出系统模块框图如图3.10所示:Web即时通信用户登录模块用户注册模块收发消息模块好友管理模块创建用户群模块收发群消息模块个人信息管理模块用户查找模块用户群管理模块 功能描述l 用户登录模块 系统的首页就是用户登录,在用户登录之前是不能体验系统的其他功能的,在登录页面中输入用户名和密码,如果都正确,就可以进入系统主窗体。登录的用户名是用户注册时的用户名而不是像QQ那样的号码。l 用户注册模块如果用户没有账号,就需要进行注册,在注册页面输入相对应的信息进行注册,如果用户的输入合法的话,信息将保存到数据库中,完成注册操
23、作。l 个人信息管理模块用户可以管理自己的信息,对个人信息进行修改,然后重新保存到数据库中。l 收发消息模块选中好友,双击弹出聊天的对话框,然后输入聊天的内容,发送给好友。这个过程不需要考虑用户是否在线,也就是说可以发送离线的消息。用户接受到好友发来的消息时,会有提示,然后查看消息。l 用户查找模块根据输入的信息查找注册过的用户,可以不同的条件查找,比如,按照帐号或者昵称查找。符合条件的用户显示出简单的信息,也可以继续查看详细的用户信息。当查找的用户过多时,可以分页显示。l 好友管理模块在查找到用户的基础上,添加需要的用户为好友,会发送消息给对应的用户,请求加为好友,若用户同意,则添加好友关系
24、到数据库中。删除好友则直接选中好友就可以删除,不需要经过对方的同意,直接删除。l 创建用户群模块这个和注册操作类似,注册过的用户都可以创建用户群,然后邀请好友加入。在这个过程中需要输入群的一些信息,在创建群的时候需要对信息进行验证,确保信息格式的正确和无误。l 收发群消息模块用户可以在自己所在群中发群消息,然后再群中的每个人都应该可以收到消息,同样,群里的其他人发出的消息,也都能接受到。l 用户群管理模块创建群的用户可以对用户群的消息做一些修改,比如修改群的名称等,然后保存到数据库中。作为群的创建人,可以添加自己已经有的好友作为用户群的一个成员,同时也可以删除用户群中的一个成员。 数据流图l
25、用户登录数据流图 由用户输入用户名、密码以及验证码,首先验证验证码是否正确,若正确则继续判断用户名和密码,否则重新输入;若验证码正确,则将用户名和密码放到数据库中比较,如果都匹配,则登录成功,否则登录失败。数据验证用户名、密码和验证码系统时间用户信息用户名和密码验证码错误验证用户名和密码用户名或密码错误通过验证l 用户注册模块 加载用户注册页面,提示用户输入注册信息,判断用户输入的信息是否符合格式要求。若格式不正确给出提示,并要求用户重新输入。若格式正确,则继续添加用户信息到数据库中,若添加成功,则用户注册成功,给出注册成功提示,否则,注册失败。数据验证用户基本信息系统时间用户信息用户对象无效
26、的用户信息添加用户信息失败成功l 个人信息管理模块加载个人信息,并且在页面上将用户信息显示出来,用户修改,判断用户输入的信息是否符合格式要求。若格式不正确给出提示,并要求用户重新输入。若格式正确,则继续修改用户信息到数据库中,修改成功。否则修改失败。读取数据修改后用户信息系统时间用户信息数据读取失败数据显示通过验证数据验证系统时间用户信息出错修改用户信息失败成功用户信息用户信息用户信息l 收发消息模块 用户输入需要发送的消息,添加到数据库中。由接受消息的用户在数据库中查找是否有消息,如果有,则显示消息,否则不显示。添加消息系统时间用户信息数据添加失败读取失败读取消息系统时间数据显示失败显示消息
27、用户消息用户信息信息库存l 用户查找模块 用户输入查找关键字,验证关键字格式是否正确。若正确,则在数据库中查找对应信息,并将查找到的结果显示。否则,给出提示,要求用户重新输入。查找用户数据查找成功数据查找失败数据显示用户关键字用户信息l 添加和删除好友模块用户输入要添加或者删除的好友,并将信息保存到数据库中,由好友确认,同时提交确认数据到数据库中,建立或解除好友关系。查找用户数据查找成功数据查找失败数据显示用户关键字回应消息系统时间用户回应失败系统时间添加用户用户信息添加/删除好友关系拒绝同意用户信息添加用户消息用户信息l 创建用户群模块加载用户群创建页面,提示用户输入用户群信息信息,判断用户
28、输入的信息是否符合格式要求。若格式不正确给出提示,并要求用户重新输入。若格式正确,则继续添加用户群信息到数据库中,若添加成功,则用户群创建成功,给出创建成功提示,否则,创建失败。数据验证用户群基本信息系统时间用户群对象无效的用户群信息添加群成员失败成功选择群成员用户群库存l 收发群消息模块用户输入需要发送的消息,添加到数据库中。由用户群中其他用户查找是否有群消息,如果有,则显示消息,否则不显示。添加群消息系统时间用户群信息数据添加失败读取失败读取消息系统时间数据显示失败显示消息用户群消息用户群信息群信息库存l 用户群管理模块加载用户群信息,并且在页面上将用户群信息显示出来,用户修改,判断用户输
29、入的信息是否符合格式要求。若格式不正确给出提示,并要求用户重新输入。若格式正确,则继续修改用户群信息到数据库中,修改成功。否则修改失败。读取数据修改后用户群信息系统时间用户群信息数据读取失败数据显示未通过验证数据验证系统时间用户信息出错修改用户群信息失败成功用户群信息用户群信息用户群库存 性能需求 数据精确度(1)要按照严格的数据格式输入,否则系统不给予响应进行处理。(2)查询时要保证查全率,所有相应域包含查询关键字的记录都应能查到。因为通常有文件的记录会很多,所以本系统采用了两种方法进行查询:直接查询和模糊查询。 时间特性一般操作的响应时间应在12秒内,保证用户的等待时间可以接受。 其它要求
30、(1)系统的功能实现情况: 用户可在本系统下实现各种用户要求的功能;(2)系统的安全性: 对于系统的重要数据都有密码保护,具有一定的安全性;(3)系统的容错性: 用户输错数据都有提示信息,具有较好的容错性能;(4)系统的封闭性: 用户的封闭性较好,用户基本上在提示信息下输数据。4 概要设计 总体设计4.1.1 三层结构的介绍数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是
31、积木,那逻辑层就是对这些积木的搭建。表示层:主要表示为WEB方式,WEB方式以.aspx形式呈现, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。所谓三层体系结构,是在客户端与数据库之间加入了一个中间层,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数
32、据库进行交换。开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。 三层架构的优缺点优点:(1) 开发人员可以只关注整个结构中的其中某一层;(2) 可以很容易的用新的实现来替换原有层次的实现;(3) 可以降低层与层之间的依赖;(4) 有利于标准化;(5) 利于各层逻辑的复用;(6) 扩展性强。不同层负责不同的
33、层面,如PetShop可经过简单的配置实现 Microsoft Sql Server和Oracle之间的转换,当然写好了也可以实现B/S与C/S之间的转换;(7) 安全性高。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了;(8) 项目结构更清楚,分工更明确,有利于后期的维护和升级。缺点:(1) 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成;(2) 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业
34、务逻辑层和数据访问层中都增加相应的代码;(3) 增加了代码量,增加了工作量。 三层架构的实现 三层结构的实现根据系统的需求分析和结构设计,针对三层结构的特性,对系统的架构进行了设计,其方法是:在创建一个解决方案之后,在解决方案上右击,在弹出的菜单中选择“添加”“新建项”命令,在出现的对话框中,选择右边的“类”在名称中填入“SQLServerDAL”,如图4-1所示,同理创建BLL和Model类。图4.1 创建类库系统层次的划分和描述如下表4-1所示:表4-1 系统层次划分和功能描述名称用途BLL业务逻辑层,用于存放实现业务逻辑层的类SQLServerDAL数据访问层,用于存放访问数据库和操作实
35、体类的方法Model数据模型层,用于存放实体类WebHL为Web表示层设计 运行设计 运行模块的组合 具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,处理数据。 运行控制软件运行时有较友好的界面,基本能够实现用户的数据处理要求。 运行时间系统的运行时间基本可以达到用户所提出的要求。 出错处理设计 出错输出信息 如果用户进行了非法的操作,系统给出提示:“对不起,操作有误!”而且用户的密码管理可以允许用户修改自己的密码,不允许用户的匿名登录。 出错处理对策由于数据在数据库中已经有备份,故在系统出错后可以依靠数据库的恢复功能,并且依靠日志文件使系统再启动,就算
36、系统崩溃用户数据也不会丢失或遭到破坏。但有可能占用更多的数据存储空间,权衡措施由用户来决定。 安全保密设计系统的系统用户管理保证了只有授权的用户才能进入系统进行数据操作,而且对一些重要数据,系统设置为只有更高权限的人员方可读取或是操作。系统安全保密性较高。 维护设计 由于系统较小没有外加维护模块,因为维护工作比较简单,仅靠数据库的一些基本维护基本上就可以满足要求。5 详细设计 用户登录模块 用户登录流程图开始验证码登录到主页面登录失败提示结束TrueFalse用户名,密码和验证码验证用户名和密码TrueFalse用户登录页面为,在页面上输入用户名、密码和验证码。最先判断验证码是否正确,验证码采
37、用的是数字和英文字母大小写的组合,需要将用户的输入和验证码的文本同时转换成小写字母,然后进行比较,当用户输入的验证码不正确时,提示用户验证码错误,同时返回,让用户重新输入。当验证码正确时,保存输入的用户名和密码,提交到数据库中,进行比较,当用户名和密码同时满足条件时,登录成功,否则登录失败。 算法描述打开登录页面,用户通过登录界面登录,输入用户名和密码,将用户输入的用户名和密码与数据库中的数据进行比较,如果都相同,则表示登录成功,并且将登录信息传入主页面;当用户输入的用户名或者密码不正确时,给出错误信息提示。登录按钮单击事件如下: if (this.txt_checkBox.Text.Trim
38、().ToLower() != SessionCheckCode.ToString().Trim().ToLower() Response.Write(alert(验证码错误!); else WebHL.BLL.TBUserInformation validate = new WebHL.BLL.TBUserInformation(); int selfId = 0; string password = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(this.txt_passWord.Tex
39、t.Trim(), MD5); string result = validate.ValidateLoginNameAndPsw(Server.HtmlEncode(this.txt_userName.Text.Trim(), password, ref selfId); if (result = 验证通过) if (UserExist() return; else Sessionname = this.txt_userName.Text.Trim();etUserOnline(selfId, Request.UserHostAddress); Response.Redirect(MainFr
40、m.aspx?userName= + this.txt_userName.Text.Trim() + &userPassword= + password); 页面效果如下图所示:5.2用户登录页面 用户注册模块 注册算法流程图开始是否正确操作成功提示操作失败提示结束添加用户TrueFalse用户信息核对信息格式是否成功TrueFalse打开用户注册页面,根据页面上的提示信息,输入用户信息,包括:头像、用户名、昵称、密码、性别、个性签名等。然后需要核对用户信息,首先验证用户名是否存在,若已经存在提示用户不能使用该用户名,重新输入。当所有信息都符合要求时,就可以向数据库中添加用户信息,并自动生成用
41、户编号。 算法描述RegionUser.aspx页面,用户注册的时候需要填写对应指定的信息,已完成注册操作,如果有信息不符合格式的要求,则会产生异常,注册操作将不成功,数据将不会添加的数据库中。注册按钮单击事件代码如下: try WebHL.BLL.TBUserInformation validate = new WebHL.BLL.TBUserInformation(); if (validate.Exists(loginName) return exist; else return notexist; 注册页面设计图如下:5.4用户注册 个人信息管理模块 个人信息管理算法流程图开始是否正确
42、操作成功提示操作失败提示结束修改用户信息TrueFalse修改用户信息核对信息格式是否正确读取用户信息显示用户信息FalseTrue对于已经成功登录的用户,通过单击菜单,打开修改信息页面。根据用户名,在数据库查找到相关信息,并且显示在页面上。用户可以修改除了用户编号也用户名以外的信息。 在修改完成之后,先进行数据格式的验证,如果数据验证成功,将新的数据添加到数据中,完成修改操作。 算法描述,此模块用来提供用户修改个人信息,页面加载的时候会根据传递过来的用户名在数据库中查找用户的信息,然后通过页面上的控件显示出来,其中显示用户编号的文本框是属性为只读,不能够修改,并且不显示用户名信息。用户可以通过页面中的其他文本或着选择项来修改信息,然后点击